diff --git a/.config/MangoHud/MangoHud.conf b/.config/MangoHud/MangoHud.conf deleted file mode 100644 index 6194032..0000000 --- a/.config/MangoHud/MangoHud.conf +++ /dev/null @@ -1,241 +0,0 @@ -### MangoHud configuration file -### Uncomment any options you wish to enable. Default options are left uncommented -### Use some_parameter=0 to disable a parameter (only works with on/off parameters) -### Everything below can be used / overridden with the environment variable MANGOHUD_CONFIG instead - -################ PERFORMANCE ################# - -### Limit the application FPS. Comma-separated list of one or more FPS values (e.g. 0,30,60). 0 means unlimited (unless VSynced) -fps_limit=144 - -### VSync [0-3] 0 = adaptive; 1 = off; 2 = mailbox; 3 = on -# vsync= -vsync=1 - -### OpenGL VSync [0-N] 0 = off; >=1 = wait for N v-blanks, N > 1 acts as a FPS limiter (FPS = display refresh rate / N) -# gl_vsync= -gl_vsync=0 - -################### VISUAL ################### - -### Legacy layout -# legacy_layout=false - -### Display custom centered text, useful for a header -# custom_text_center= - -### Display the current system time -# time - -### Time formatting examples -# time_format=%H:%M -# time_format=[ %T %F ] -# time_format=%X # locally formatted time, because of limited glyph range, missing characters may show as '?' (e.g. Japanese) - -### Display MangoHud version -# version - -### Display the current GPU information -gpu_stats -gpu_temp -gpu_core_clock -gpu_mem_clock -gpu_power -# gpu_text=GPU -gpu_load_change -gpu_load_value=60,90 -gpu_load_color=39F900,FDFD09,B22222 - -### Display the current CPU information -cpu_stats -cpu_temp -cpu_power -# cpu_text=CPU -cpu_mhz -cpu_load_change -cpu_load_value=60,90 -cpu_load_color=39F900,FDFD09,B22222 - -### Display the current CPU load & frequency for each core -# core_load -# core_load_change - -### Display IO read and write for the app (not system) -io_stats -io_read -io_write - -### Display system vram / ram / swap space usage -vram -ram -swap - -### Display per process memory usage -## Show resident memory and other types, if enabled -# procmem -# procmem_shared -# procmem_virt - -### Display battery information -# battery -# battery_icon -# gamepad_battery -# gamepad_battery_icon - -### Display FPS and frametime -fps -# fps_sampling_period=500 -fps_color_change -fps_value=60,90 -fps_color=B22222,FDFD09,39F900 -frametime -# frame_count - -### Display miscellaneous information -#engine_version -#gpu_name -#vulkan_driver -#wine - -### Display loaded MangoHud architecture -# arch - -### Display the frametime line graph -frame_timing -histogram - -### Display GameMode / vkBasalt running status -gamemode -#vkbasalt - -### Display current FPS limit -# show_fps_limit - -### Display the current resolution -# resolution - -### Display custom text -# custom_text= -### Display output of Bash command in next column -# exec= - -### Display media player metadata -# media_player -# media_player_name=spotify -## Format metadata, lines are delimited by ; (wip) -# media_player_format={title};{artist};{album} -# media_player_format=Track:;{title};By:;{artist};From:;{album} - -### Change the hud font size -# font_size=24 -# font_scale=1.0 -# font_size_text=24 -# font_scale_media_player=0.55 -# no_small_font - -### Change default font (set location to TTF/OTF file) -## Set font for the whole hud -# font_file= - -## Set font only for text like media player metadata -# font_file_text= - -## Set font glyph ranges. Defaults to Latin-only. Don't forget to set font_file/font_file_text to font that supports these -## Probably don't enable all at once because of memory usage and hardware limits concerns -## If you experience crashes or text is just squares, reduce glyph range or reduce font size -# font_glyph_ranges=korean,chinese,chinese_simplified,japanese,cyrillic,thai,vietnamese,latin_ext_a,latin_ext_b - -### Change the hud position -# position=top-left - -### Change the corner roundness -# round_corners= - -### Disable / hide the hud by default -no_display - -### Hud position offset -# offset_x= -# offset_y= - -### Hud dimensions -# width= -# height= -# table_columns= -# cellpadding_y= - -### Hud transparency / alpha -# background_alpha=0.5 -# alpha= - -### FCAT overlay -### This enables an FCAT overlay to perform frametime analysis on the final image stream. -### Enable the overlay -# fcat -### Set the width of the FCAT overlay. -### 24 is a performance optimization on AMD GPUs that should not have adverse effects on nVidia GPUs. -### A minimum of 20 pixels is recommended by nVidia. -# fcat_overlay_width=24 -### Set the screen edge, this can be useful for special displays that don't update from top edge to bottom. This goes from 0 (left side) to 3 (top edge), counter-clockwise. -# fcat_screen_edge=0 - -### Color customization -# text_color=FFFFFF -# gpu_color=2E9762 -# cpu_color=2E97CB -# vram_color=AD64C1 -# ram_color=C26693 -# engine_color=EB5B5B -# io_color=A491D3 -# frametime_color=00FF00 -# background_color=020202 -# media_player_color=FFFFFF -# wine_color=EB5B5B -# battery_color=FF9078 - -### Specify GPU with PCI bus ID for AMDGPU and NVML stats -### Set to 'domain:bus:slot.function' -# pci_dev=0:0a:0.0 - -### Blacklist -# blacklist= - -### Control over socket -### Enable and set socket name, '%p' is replaced with process id -# control = mangohud -# control = mangohud-%p - -################ WORKAROUNDS ################# -### Options starting with "gl_*" are for OpenGL -### Specify what to use for getting display size. Options are "viewport", "scissorbox" or disabled. Defaults to using glXQueryDrawable -# gl_size_query=viewport - -### (Re)bind given framebuffer before MangoHud gets drawn. Helps with Crusader Kings III -# gl_bind_framebuffer=0 - -### Don't swap origin if using GL_UPPER_LEFT. Helps with Ryujinx -# gl_dont_flip=1 - -################ INTERACTION ################# - -### Change toggle keybinds for the hud & logging -# toggle_hud=Shift_R+F12 -# toggle_fps_limit=Shift_L+F1 -# toggle_logging=Shift_L+F2 -# reload_cfg=Shift_L+F4 -# upload_log=Shift_L+F3 - -#################### LOG ##################### -### Automatically start the log after X seconds -# autostart_log=1 -### Set amount of time in seconds that the logging will run for -# log_duration= -### Change the default log interval, 100 is default -# log_interval=100 -### Set location of the output files (required for logging) -output_folder=/home/wizardlink/.config/MangoHud -### Permit uploading logs directly to FlightlessMango.com -# permit_upload=1 -### Define a '+'-separated list of percentiles shown in the benchmark results -### Use "AVG" to get a mean average. Default percentiles are 97+AVG+1+0.1 -# benchmark_percentiles=97,AVG,1,0.1 diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf deleted file mode 100644 index afad96b..0000000 --- a/.config/btop/btop.conf +++ /dev/null @@ -1,212 +0,0 @@ -#? Config file for btop v. 1.2.13 - -#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. -#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" -color_theme = "/usr/share/btop/themes/dracula.theme" - -#* If the theme set background should be shown, set to False if you want terminal background transparency. -theme_background = False - -#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. -truecolor = True - -#* Set to true to force tty mode regardless if a real tty has been detected or not. -#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. -force_tty = False - -#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. -#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. -#* Use whitespace " " as separator between different presets. -#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" -presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" - -#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. -#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. -vim_keys = False - -#* Rounded corners on boxes, is ignored if TTY mode is ON. -rounded_corners = True - -#* Default symbols to use for graph creation, "braille", "block" or "tty". -#* "braille" offers the highest resolution but might not be included in all fonts. -#* "block" has half the resolution of braille but uses more common characters. -#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. -#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. -graph_symbol = "braille" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_cpu = "default" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_mem = "default" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_net = "default" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_proc = "default" - -#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace. -shown_boxes = "cpu proc mem net" - -#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. -update_ms = 2000 - -#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", -#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. -proc_sorting = "cpu lazy" - -#* Reverse sorting order, True or False. -proc_reversed = False - -#* Show processes as a tree. -proc_tree = False - -#* Use the cpu graph colors in the process list. -proc_colors = True - -#* Use a darkening gradient in the process list. -proc_gradient = True - -#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. -proc_per_core = False - -#* Show process memory as bytes instead of percent. -proc_mem_bytes = True - -#* Show cpu graph for each process. -proc_cpu_graphs = True - -#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) -proc_info_smaps = False - -#* Show proc box on left side of screen instead of right. -proc_left = False - -#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). -proc_filter_kernel = False - -#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. -#* Select from a list of detected attributes from the options menu. -cpu_graph_upper = "total" - -#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. -#* Select from a list of detected attributes from the options menu. -cpu_graph_lower = "total" - -#* Toggles if the lower CPU graph should be inverted. -cpu_invert_lower = True - -#* Set to True to completely disable the lower CPU graph. -cpu_single_graph = False - -#* Show cpu box at bottom of screen instead of top. -cpu_bottom = False - -#* Shows the system uptime in the CPU box. -show_uptime = True - -#* Show cpu temperature. -check_temp = True - -#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. -cpu_sensor = "Auto" - -#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. -show_coretemp = True - -#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. -#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. -#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. -#* Example: "4:0 5:1 6:3" -cpu_core_map = "" - -#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". -temp_scale = "celsius" - -#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. -base_10_sizes = False - -#* Show CPU frequency. -show_cpu_freq = True - -#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. -#* Special formatting: /host = hostname | /user = username | /uptime = system uptime -clock_format = "%X" - -#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. -background_update = True - -#* Custom cpu model name, empty string to disable. -custom_cpu_name = "" - -#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". -#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". -disks_filter = "" - -#* Show graphs instead of meters for memory values. -mem_graphs = True - -#* Show mem box below net box instead of above. -mem_below_net = False - -#* Count ZFS ARC in cached and available memory. -zfs_arc_cached = True - -#* If swap memory should be shown in memory box. -show_swap = True - -#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. -swap_disk = True - -#* If mem box should be split to also show disks info. -show_disks = True - -#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. -only_physical = True - -#* Read disks list from /etc/fstab. This also disables only_physical. -use_fstab = True - -#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) -zfs_hide_datasets = False - -#* Set to true to show available disk space for privileged users. -disk_free_priv = False - -#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. -show_io_stat = True - -#* Toggles io mode for disks, showing big graphs for disk read/write speeds. -io_mode = False - -#* Set to True to show combined read/write io graphs in io mode. -io_graph_combined = False - -#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". -#* Example: "/mnt/media:100 /:20 /boot:1". -io_graph_speeds = "" - -#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. -net_download = 100 - -net_upload = 100 - -#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. -net_auto = True - -#* Sync the auto scaling for download and upload to whichever currently has the highest scale. -net_sync = True - -#* Starts with the Network Interface specified here. -net_iface = "" - -#* Show battery stats in top right if battery is present. -show_battery = True - -#* Which battery to use if multiple are present. "Auto" for auto detection. -selected_battery = "Auto" - -#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". -#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. -log_level = "WARNING" \ No newline at end of file diff --git a/.config/doom/config.el b/.config/doom/config.el deleted file mode 100644 index 1aad4ef..0000000 --- a/.config/doom/config.el +++ /dev/null @@ -1,170 +0,0 @@ -;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- - -;; Place your private configuration here! Remember, you do not need to run 'doom -;; sync' after modifying this file! - -;; Some functionality uses this to identify you, e.g. GPG configuration, email -;; clients, file templates and snippets. -(setq user-full-name "Alexandre Cavalheiro S. Tiago da Silva" - user-mail-address "contact@thewizard.link") - -;; Doom exposes five (optional) variables for controlling fonts in Doom. Here -;; are the three important ones: -;; -;; + `doom-font' -;; + `doom-variable-pitch-font' -;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for -;; presentations or streaming. -;; -;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd -;; font string. You generally only need these two: -;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light) -;; doom-variable-pitch-font (font-spec :family "sans" :size 13)) - -(setq doom-font (font-spec :family "FantasqueSansMono NF" :size 15)) -;;(setq doom-font (font-spec :family "Hasklig" :size 12 :weight 'regular)) - -;;(setq doom-unicode-font doom-font) ; extend glyphs - -;; There are two ways to load a theme. Both assume the theme is installed and -;; available. You can either set `doom-theme' or manually load a theme with the -;; `load-theme' function. This is the default: -(setq doom-theme 'doom-dracula) - -;; If you use `org' and don't want your org files in the default location below, -;; change `org-directory'. It must be set before org loads! -(setq org-directory "~/Documents/notes" - org-agenda-files (doom-files-in `(,org-directory, "~/Documents/zettelkasten") :type 'files :match "\\.org\\'")) - -;; This determines the style of line numbers in effect. If set to `nil', line -;; numbers are disabled. For relative line numbers, set this to `relative'. -(setq display-line-numbers-type 'relative) - - -;; Here are some additional functions/macros that could help you configure Doom: -;; -;; - `load!' for loading external *.el files relative to this one -;; - `use-package!' for configuring packages -;; - `after!' for running code after a package has loaded -;; - `add-load-path!' for adding directories to the `load-path', relative to -;; this file. Emacs searches the `load-path' when you load packages with -;; `require' or `use-package'. -;; - `map!' for binding new keys -;; -;; To get information about any of these functions/macros, move the cursor over -;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). -;; This will open documentation for it, including demos of how they are used. -;; -;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how -;; they are implemented. - -;; Set the tab size to 2 -(setq tab-width 2) - -;; Make sure hl-line-mode doesn't overrides rainbow-mode -(add-hook! 'rainbow-mode-hook - (hl-line-mode (if rainbow-mode -1 +1))) - -;; Show gravatars on commits -(setq magit-revision-show-gravatars '("^Author: " . "^Commit: ")) - -;; Enable fullscreen when activating zen mode -(setq writeroom-fullscreen-effect t) - -;; Configure elcord -(setq elcord-client-id "794300845000228897" - elcord-mode-text-alist '( - (cpp-mode . "C++") - (emacs-lisp-mode . "Elisp") - (gdscript-mode . "GDScript") - (js-mode . ":(") - (json-mode . "D:") - (lua-mode . "PLEASE") - (org-mode . "c:") - (sh-mode . ":c") - (typescript-mode . ":)") - (magit-mode . "Git magic") - (elixir-mode . "Elixir") - (nim-mode "Nim") - ) - elcord-mode-icon-alist '( - (cpp-mode . "cpp_mode") - (emacs-lisp-mode . "elisp_mode") - (gdscript-mode . "gdscript_mode") - (js-mode . "js_mode") - (json-mode . "json_mode") - (lua-mode . "lua_mode") - (org-mode . "org_mode") - (sh-mode . "sh_mode") - (typescript-mode . "typescript_mode") - (magit-mode . "magit_mode") - (elixir-mode . "elixir_mode") - (nim-mode . "nim_mode") - ) - elcord-editor-icon "elmo_fire" - elcord--editor-name "Coding is overrated." - ) - -;; Configure initial major mode for the scratch buffer -(setq initial-major-mode 'org-mode) - -;; Configure orm-roam -(setq org-roam-v2-ack t) ; flag that it has been successfully migrated -(setq org-roam-directory "~/Documents/zettelkasten") -(map! (:leader :desc "Opens a daily note through the calendar" :n "nrdF" #'org-roam-dailies-find-date)) - -(use-package! websocket - :after org-roam) -(use-package! org-roam-ui - :after org-roam - :config - (setq org-roam-ui-sync-theme t - org-roam-ui-follow t - org-roam-ui-update-on-save t - org-roam-ui-open-on-start t)) - -;; Function to add directories done by hlissner (Henrik) https://github.com/hlissner/doom-emacs/issues/5305#issuecomment-923996238 -(defun doom/add-directory-as-project (dir) - "Register an arbitrary directory as a project. -If DIR is not a valid project, a .project file will be created within it. This -command will throw an error if a parent of DIR is a valid project (which would -mask DIR)." - (interactive "D") - (let ((short-dir (abbreviate-file-name dir)) - (proj-dir (doom-project-root dir))) - (unless (and proj-dir (file-equal-p proj-dir dir)) - (with-temp-file (doom-path dir ".project"))) - (setq proj-dir (doom-project-root dir)) - (unless (and proj-dir (file-equal-p proj-dir dir)) - (user-error "Can't add %S as a project, because %S is already a project" - short-dir (abbreviate-file-name proj-dir))) - (message "%S was not a project; adding .project file to it" short-dir) - (projectile-add-known-project dir))) - -;; Setup elixir-ls -(setq lsp-clients-elixir-server-executable '("~/.local/share/elixir-ls/release/language_server.sh")) - -;; Configure elfeed -(setq rmh-elfeed-org-files '("/home/wizardlink/Documents/zettelkasten/20220610215118-elfeed.org")) - -;; Configure doom-themes with treemacs -(with-eval-after-load 'doom-themes - (doom-themes-treemacs-config)) - -;; Configure doom-gruvbox -(setq - doom-gruvbox-brighter-comments nil - doom-gruvbox-dark-variant "medium" - doom-gruvbox-padded-modeline nil) - -;; Configure formaters -(setq +format-on-save-enabled-modes - '(not emacs-lisp-mode - javascript-mode - typescript-mode - web-mode)) - -;; Configure org-reveal -(setq - org-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js" - org-reveal-klipsify-src 'nil) diff --git a/.config/doom/custom.el b/.config/doom/custom.el deleted file mode 100644 index afb9450..0000000 --- a/.config/doom/custom.el +++ /dev/null @@ -1,13 +0,0 @@ -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(org-agenda-files - '("/home/wizardlink/Documents/zettelkasten/20230123221042-ledger_cli.org" "/home/wizardlink/Documents/zettelkasten/20230123220741-glsl.org" "/home/wizardlink/Documents/zettelkasten/20230123214951-veloren.org" "/home/wizardlink/Documents/zettelkasten/20230123214806-learning_investing.org" "/home/wizardlink/Documents/zettelkasten/20230123214158-novelai_amazing_ai_art_and_story_generation.org" "/home/wizardlink/Documents/zettelkasten/20230123214028-librivox_free_public_domain_audio_books.org" "/home/wizardlink/Documents/zettelkasten/20230121131947-life_goals.org" "/home/wizardlink/Documents/zettelkasten/20230121131536-2023_goals.org" "/home/wizardlink/Documents/zettelkasten/20230117233020-shit_i_need_to_do_before_argentina.org" "/home/wizardlink/Documents/zettelkasten/20230115222859-what_parents_owe_me_feb_2023.org" "/home/wizardlink/Documents/zettelkasten/20230108115138-what_parents_owe_me_jan_2023.org" "/home/wizardlink/Documents/zettelkasten/20221222000213-december_2022_vacation.org" "/home/wizardlink/Documents/zettelkasten/20221202091117-december_first_half_sprint_demo.org" "/home/wizardlink/Documents/zettelkasten/20221121153159-what_parents_owe_me_nov_2022.org" "/home/wizardlink/Documents/zettelkasten/20221114202149-497151_create_the_cloud_render_backgrounds_list.org" "/home/wizardlink/Documents/zettelkasten/20220930204427-october_2022_cult_meet_up.org" "/home/wizardlink/Documents/zettelkasten/20220822172845-482471_spike_on_the_react_tooltip_library.org" "/home/wizardlink/Documents/zettelkasten/20220717231652-routine.org" "/home/wizardlink/Documents/zettelkasten/20220708123800-programming_languages.org" "/home/wizardlink/Documents/zettelkasten/20220708123359-yofukashi_no_uta.org" "/home/wizardlink/Documents/zettelkasten/20220708123338-anime.org" "/home/wizardlink/Documents/zettelkasten/20220708115729-a_day_when_a_solar_flare_erupted_to_reach_all_planets_in_it_s_reach.org" "/home/wizardlink/Documents/zettelkasten/20220708115014-dreams.org" "/home/wizardlink/Documents/zettelkasten/20220707225350-github.org" "/home/wizardlink/Documents/zettelkasten/20220707225203-bevy.org" "/home/wizardlink/Documents/zettelkasten/20220629165111-akita_neru.org" "/home/wizardlink/Documents/zettelkasten/20220622172237-68188_correct_the_errors_generated_by_the_new_eslint_configuration.org" "/home/wizardlink/Documents/zettelkasten/20220622165045-sway_issue_with_specific_input_device_id.org" "/home/wizardlink/Documents/zettelkasten/20220613100650-67251_configure_eslint_for_mooble.org" "/home/wizardlink/Documents/zettelkasten/20220612032328-supressing_microphone_noise_in_linux.org" "/home/wizardlink/Documents/zettelkasten/20220611014136-hydractify.org" "/home/wizardlink/Documents/zettelkasten/20220610225857-aug_2022_cult_meeting.org" "/home/wizardlink/Documents/zettelkasten/20220610221532-programming_tools.org" "/home/wizardlink/Documents/zettelkasten/20220610215118-elfeed.org" "/home/wizardlink/Documents/zettelkasten/20220610181141-mooble.org" "/home/wizardlink/Documents/zettelkasten/20220606213630-zipf_mistery.org" "/home/wizardlink/Documents/zettelkasten/20220604164104-electronic_mail.org" "/home/wizardlink/Documents/zettelkasten/20220525172625-babel_js.org" "/home/wizardlink/Documents/zettelkasten/20220525172558-webpack.org" "/home/wizardlink/Documents/zettelkasten/20220525172231-cli.org" "/home/wizardlink/Documents/zettelkasten/20220525165500-rust.org" "/home/wizardlink/Documents/zettelkasten/20220525165450-go.org" "/home/wizardlink/Documents/zettelkasten/20220525165343-nodejs.org" "/home/wizardlink/Documents/zettelkasten/20220525164627-monorepo.org" "/home/wizardlink/Documents/zettelkasten/20220525164415-nx_monorepo.org" "/home/wizardlink/Documents/zettelkasten/20220507054552-computer_science.org" "/home/wizardlink/Documents/zettelkasten/20220507054425-ensino_medio.org" "/home/wizardlink/Documents/zettelkasten/20220507053943-carteira_de_trabalho.org" "/home/wizardlink/Documents/zettelkasten/20220507053746-cadastro_de_pessoa_fisica.org" "/home/wizardlink/Documents/zettelkasten/20220507050817-brazil.org" "/home/wizardlink/Documents/zettelkasten/20220507045138-personal_information.org" "/home/wizardlink/Documents/zettelkasten/20220116161730-the_dragon_cult.org" "/home/wizardlink/Documents/zettelkasten/20210908222339-tecnicas_de_programacao.org" "/home/wizardlink/Documents/notes/talk_with_maxime.org" "/home/wizardlink/Documents/notes/reveal_cheatsheet.org" "/home/wizardlink/Documents/notes/open_links.org" "/home/wizardlink/Documents/notes/important.org" "/home/wizardlink/Documents/notes/elfeed.org" "/home/wizardlink/Documents/notes/cheatsheet.org" "/home/wizardlink/Documents/notes/cult/ideas.org" "/home/wizardlink/Documents/notes/cult/game_keys.org" "/home/wizardlink/Documents/notes/cult/2021/may.org" "/home/wizardlink/Documents/notes/cult/2021/july.org" "/home/wizardlink/Documents/notes/cult/2021/august/meeting_1.org" "/home/wizardlink/Documents/notes/cult/2021/december/referral.org" "/home/wizardlink/Documents/notes/cult/2021/december/plan.org" "/home/wizardlink/Documents/notes/cult/2021/december/announcement.org" "/home/wizardlink/Documents/notes/cult/2021/september/bounties.org" "/home/wizardlink/Documents/notes/cult/2022/rebrand.org" "/home/wizardlink/Documents/notes/cult/2022/february/plan.org" "/home/wizardlink/Documents/notes/cult/2022/january/plan.org" "/home/wizardlink/Documents/notes/cult/2022/march/plan.org" "/home/wizardlink/Documents/notes/finances/recurring_spendings.org" "/home/wizardlink/Documents/notes/finances/fairy.org" "/home/wizardlink/Documents/notes/finances/2021/november.org" "/home/wizardlink/Documents/notes/finances/2021/december.org" "/home/wizardlink/Documents/notes/hydractify/kanna_kobayashi/v5/plan.org" "/home/wizardlink/Documents/notes/hydractify/kanna_kobayashi/v5/akita_neru.org" "/home/wizardlink/Documents/notes/study/plan.org" "/home/wizardlink/Documents/notes/study/computer_science/grades.org" "/home/wizardlink/Documents/notes/study/computer_science/algorithms_and_programming/chapter_1.org" "/home/wizardlink/Documents/notes/study/computer_science/computing_fundamentals/chapter_2.org" "/home/wizardlink/Documents/notes/study/computer_science/computing_fundamentals/chapter_1.org" "/home/wizardlink/Documents/notes/work/2020/tasks/67251.org" "/home/wizardlink/Documents/notes/work/basis/tarefa_estagiarios.org" "/home/wizardlink/Documents/notes/work/basis/analise_infraestrutura.org" "/home/wizardlink/Documents/notes/work/basis/analise_atualizacao_infra.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-05-31.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-04-10.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-04-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-03-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-03-20.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-03-13.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-03-08.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-03-03.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-03-01.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-25.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-24.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-23.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-22.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-20.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-18.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-17.org" "/home/wizardlink/Documents/zettelkasten/daily/2023-01-14.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-12-30.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-12-27.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-12-08.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-12-05.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-12-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-12-02.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-12-01.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-11-18.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-11-11.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-10-27.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-08-30.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-20.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-19.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-18.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-13.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-09.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-08.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-07.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-06.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-07-02.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-24.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-23.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-15.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-14.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-13.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-11.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-10.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-06-03.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-05-25.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-05-10.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-05-07.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-22.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-10.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-09.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-08.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-07.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-03.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-02.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-03-01.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-28.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-25.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-23.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-22.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-18.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-17.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-09.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-08.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-07.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-03.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-02.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-02-01.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-28.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-27.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-26.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-25.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-24.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-20.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-19.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-18.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-17.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-14.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-13.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-12.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-11.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-10.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-07.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-06.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-05.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2022-01-03.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-29.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-28.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-27.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-23.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-22.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-20.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-17.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-16.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-15.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-14.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-13.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-10.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-09.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-07.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-06.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-03.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-02.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-12-01.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-30.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-29.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-28.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-27.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-26.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-25.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-24.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-22.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-20.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-19.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-18.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-16.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-14.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-12.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-11.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-10.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-09.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-08.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-05.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-11-03.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-30.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-29.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-28.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-27.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-26.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-25.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-22.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-20.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-19.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-17.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-15.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-14.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-08.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-07.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-06.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-05.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-04.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-02.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-10-01.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-30.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-29.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-28.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-27.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-24.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-23.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-22.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-21.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-19.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-18.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-16.org" "/home/wizardlink/Documents/zettelkasten/daily/2021-09-15.org"))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) diff --git a/.config/doom/snippets/org-mode/cult_bounty_message b/.config/doom/snippets/org-mode/cult_bounty_message deleted file mode 100644 index a64606f..0000000 --- a/.config/doom/snippets/org-mode/cult_bounty_message +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: cult_bounty_message -# key: cultBountyMessage -# -- -« **$1** » - -╫ -║ **Requirements** -║ $2 -║ -║ **\$3 Reward \$4** -║ <@574657462603612160>; -╫ \ No newline at end of file diff --git a/.config/doom/snippets/org-mode/cult_event b/.config/doom/snippets/org-mode/cult_event deleted file mode 100644 index 26ccd2e..0000000 --- a/.config/doom/snippets/org-mode/cult_event +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: cult_event -# key: cultEvent -# -- -* TODO $1 :cult_event: - SCHEDULED: <`(current-time-string)`> - - HOST: $2 - - HOW LONG: $3 - - LINK: $4 - - $5 \ No newline at end of file diff --git a/.config/fish/conf.d/aliases.fish b/.config/fish/conf.d/aliases.fish deleted file mode 100644 index 87f7207..0000000 --- a/.config/fish/conf.d/aliases.fish +++ /dev/null @@ -1,3 +0,0 @@ -# Dev -alias e '~/.local/bin/lvim' -alias edit '~/.local/bin/lvim' diff --git a/.config/fish/conf.d/dracula.fish b/.config/fish/conf.d/dracula.fish deleted file mode 100644 index 90a5132..0000000 --- a/.config/fish/conf.d/dracula.fish +++ /dev/null @@ -1,50 +0,0 @@ -# Dracula Color Palette -set -l foreground f8f8f2 -set -l selection 44475a -set -l comment 6272a4 -set -l red ff5555 -set -l orange ffb86c -set -l yellow f1fa8c -set -l green 50fa7b -set -l purple bd93f9 -set -l cyan 8be9fd -set -l pink ff79c6 - -# Syntax Highlighting Colors -set -gx fish_color_normal $foreground -set -gx fish_color_command $cyan -set -gx fish_color_keyword $pink -set -gx fish_color_quote $yellow -set -gx fish_color_redirection $foreground -set -gx fish_color_end $orange -set -gx fish_color_error $red -set -gx fish_color_param $purple -set -gx fish_color_comment $comment -set -gx fish_color_selection --background=$selection -set -gx fish_color_search_match --background=$selection -set -gx fish_color_operator $green -set -gx fish_color_escape $pink -set -gx fish_color_autosuggestion $comment -set -gx fish_color_cancel $red --reverse -set -gx fish_color_option $orange - -# Default Prompt Colors -set -gx fish_color_cwd $green -set -gx fish_color_host $purple -set -gx fish_color_host_remote $purple -set -gx fish_color_user $cyan - -# Completion Pager Colors -set -gx fish_pager_color_progress $comment -set -gx fish_pager_color_background -set -gx fish_pager_color_prefix $cyan -set -gx fish_pager_color_completion $foreground -set -gx fish_pager_color_description $comment -set -gx fish_pager_color_selected_background --background=$selection -set -gx fish_pager_color_selected_prefix $cyan -set -gx fish_pager_color_selected_completion $foreground -set -gx fish_pager_color_selected_description $comment -set -gx fish_pager_color_secondary_background -set -gx fish_pager_color_secondary_prefix $cyan -set -gx fish_pager_color_secondary_completion $foreground -set -gx fish_pager_color_secondary_description $comment diff --git a/.config/fish/conf.d/variables.fish b/.config/fish/conf.d/variables.fish deleted file mode 100644 index 2bff6b2..0000000 --- a/.config/fish/conf.d/variables.fish +++ /dev/null @@ -1,17 +0,0 @@ -fish_add_path /home/wizardlink/.local/share/scripts \ - /home/wizardlink/.config/emacs/bin \ - /home/wizardlink/.spicetify \ - /home/wizardlink/.nimble/bin \ - /home/wizardlink/.cargo/bin \ - /home/wizardlink/.local/bin \ - /lib/flatpak/exports/bin \ - /home/wizardlink/.local/share/scripts/burrito - -# Set the default editor -set -x EDITOR lvim - -# Configure FZF -set -x FZF_DEFAULT_OPTS '--color=fg:#f8f8f2,hl:#bd93f9 --color=fg+:#f8f8f2,bg+:#44475a,hl+:#bd93f9 --color=info:#ffb86c,prompt:#50fa7b,pointer:#ff79c6 --color=marker:#ff79c6,spinner:#ffb86c,header:#6272a4 --layout=reverse --height 50%' - -# Remove welcome message -set -x fish_greeting '' diff --git a/.config/fish/config.fish b/.config/fish/config.fish deleted file mode 100644 index fa33ba6..0000000 --- a/.config/fish/config.fish +++ /dev/null @@ -1,7 +0,0 @@ -## Set theme -##if status is-interactive - ##theme_gruvbox dark hard -##end - -## Set vim mode -set -g fish_key_bindings fish_vi_key_bindings diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables deleted file mode 100644 index 7f68c24..0000000 --- a/.config/fish/fish_variables +++ /dev/null @@ -1,32 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR __fish_initialized:3400 -SETUVAR fish_color_autosuggestion:555\x1ebrblack -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:blue -SETUVAR fish_color_comment:red -SETUVAR fish_color_cwd:green -SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:green -SETUVAR fish_color_error:brred -SETUVAR fish_color_escape:brcyan -SETUVAR fish_color_history_current:\x2d\x2dbold -SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:brcyan -SETUVAR fish_color_param:cyan -SETUVAR fish_color_quote:yellow -SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold -SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d111 -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_status:red -SETUVAR fish_color_user:brgreen -SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR --export fish_key_bindings:fish_default_key_bindings -SETUVAR fish_pager_color_completion:normal -SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di -SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dbold\x1e\x2d\x2dunderline -SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr -SETUVAR fish_user_paths:/home/wizardlink/\x2elocal/share/scripts/burrito\x1e/home/wizardlink/\x2econfig/emacs/bin\x1e/home/wizardlink/\x2espicetify\x1e/home/wizardlink/\x2elocal/share/scripts\x1e/home/wizardlink/\x2eemacs\x2ed/bin\x1e/home/wizardlink/\x2enimble/bin\x1e/home/wizardlink/\x2ecargo/bin\x1e/home/wizardlink/\x2elocal/bin diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish deleted file mode 100644 index fcea75e..0000000 --- a/.config/fish/functions/fish_prompt.fish +++ /dev/null @@ -1,4 +0,0 @@ -function fish_prompt - set_color 7400FF - echo '%' (set_color normal) -end diff --git a/.config/fish/functions/fzf_edit.fish b/.config/fish/functions/fzf_edit.fish deleted file mode 100644 index 6e5f8aa..0000000 --- a/.config/fish/functions/fzf_edit.fish +++ /dev/null @@ -1,3 +0,0 @@ -function fzf_edit - fzf --multi --bind 'enter:become(edit {+})' -end diff --git a/.config/fish/functions/n.fish b/.config/fish/functions/n.fish deleted file mode 100644 index 7eb3b61..0000000 --- a/.config/fish/functions/n.fish +++ /dev/null @@ -1,32 +0,0 @@ -function n --wraps nnn --description 'support nnn quit and change directory' - # Block nesting of nnn in subshells - if test -n "$NNNLVL" - if [ (expr $NNNLVL + 0) -ge 1 ] - echo "nnn is already running" - return - end - end - - # The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set) - # If NNN_TMPFILE is set to a custom path, it must be exported for nnn to - # see. To cd on quit only on ^G, remove the "-x" from both lines below, - # without changing the paths. - if test -n "$XDG_CONFIG_HOME" - set -x NNN_TMPFILE "$XDG_CONFIG_HOME/nnn/.lastd" - else - set -x NNN_TMPFILE "$HOME/.config/nnn/.lastd" - end - - # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn - # stty start undef - # stty stop undef - # stty lwrap undef - # stty lnext undef - - nnn $argv - - if test -e $NNN_TMPFILE - source $NNN_TMPFILE - rm $NNN_TMPFILE - end -end diff --git a/.config/fish/functions/theme_gruvbox.fish b/.config/fish/functions/theme_gruvbox.fish deleted file mode 100644 index 2102411..0000000 --- a/.config/fish/functions/theme_gruvbox.fish +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/fish -function theme_gruvbox --description 'Apply gruvbox theme' - set -l mode 'light' - if test (count $argv) -gt 0 - set mode $argv[1] - end - - set -g contrast 'medium' - if test (count $argv) -gt 1 - set contrast $argv[2] - end - - switch $contrast - case 'soft' - case 'medium' - case 'hard' - case '*' - set_color $fish_color_error - echo 'Unknown contrast $contrast, choose soft, medium or hard' - set_color $fish_color_normal - return 1 - end - - switch $mode - case 'light' - __theme_gruvbox_base - __theme_gruvbox_light - case 'dark' - __theme_gruvbox_base - __theme_gruvbox_dark - case '*' - set_color $fish_color_error - echo 'Unknown mode $mode, choose light or dark' - set_color $fish_color_normal - return 1 - end - __theme_gruvbox_palette - return 0 -end - -function __theme_gruvbox_base - __printf_color 1 'cc/24/1d' - __printf_color 2 '98/97/1a' - __printf_color 3 'd7/99/21' - __printf_color 4 '45/85/88' - __printf_color 5 'b1/62/86' - __printf_color 6 '68/9d/6a' -end - -function __theme_gruvbox_light - set -l bg 'fb/f1/c7' - switch $contrast - case "soft" - set bg 'f2/e5/bc' - case "hard" - set bg 'f9/f5/d7' - end - command printf "\033]11;rgb:$bg\007" - - set -l fg '3c/38/36' - command printf "\033]10;rgb:$fg\007" - - __printf_color 0 $bg - __printf_color 7 '7c/6f/64' - __printf_color 8 '92/83/74' - __printf_color 9 '9d/00/06' - __printf_color 10 '79/74/0e' - __printf_color 11 'b5/76/14' - __printf_color 12 '07/66/78' - __printf_color 13 '8f/3f/71' - __printf_color 14 '42/7b/58' - __printf_color 15 $fg -end - -function __theme_gruvbox_dark - set -l bg '28/28/28' - switch $contrast - case "soft" - set bg '32/30/2f' - case "hard" - set bg '1d/20/21' - end - command printf "\033]11;rgb:$bg\007" - - set -l fg 'eb/db/b2' - command printf "\033]10;rgb:$fg\007" - - __printf_color 0 $bg - __printf_color 7 'a8/99/84' - __printf_color 8 '92/83/74' - __printf_color 9 'fb/59/34' - __printf_color 10 'b8/bb/26' - __printf_color 11 'fa/bd/2f' - __printf_color 12 '83/a5/98' - __printf_color 13 'd3/86/9b' - __printf_color 14 '8e/c0/7c' - __printf_color 15 $fg -end - -function __theme_gruvbox_palette - __printf_color 236 '32/30/2f' - __printf_color 234 '1d/20/21' - - __printf_color 235 '28/28/28' - __printf_color 237 '3c/38/36' - __printf_color 239 '50/49/45' - __printf_color 241 '66/5c/54' - __printf_color 243 '7c/6f/64' - - __printf_color 244 '92/83/74' - __printf_color 245 '92/83/74' - - __printf_color 228 'f2/e5/bc' - __printf_color 230 'f9/f5/d7' - - __printf_color 229 'fb/f1/c7' - __printf_color 223 'eb/db/b2' - __printf_color 250 'd5/c4/a1' - __printf_color 248 'bd/ae/93' - __printf_color 246 'a8/99/84' - - __printf_color 167 'fb/49/34' - __printf_color 142 'b8/bb/26' - __printf_color 214 'fa/bd/2f' - __printf_color 109 '83/a5/98' - __printf_color 175 'd3/86/9b' - __printf_color 108 '8e/c0/7c' - __printf_color 208 'fe/80/19' - - __printf_color 88 '9d/00/06' - __printf_color 100 '79/74/0e' - __printf_color 136 'b5/76/14' - __printf_color 24 '07/66/78' - __printf_color 96 '8f/3f/71' - __printf_color 66 '42/7b/58' - __printf_color 130 'af/3a/03' -end - -function __printf_color - command printf "\033]4;$argv[1];rgb:$argv[2]\007" -end diff --git a/.config/lvim/config.lua b/.config/lvim/config.lua deleted file mode 100644 index fe74a5e..0000000 --- a/.config/lvim/config.lua +++ /dev/null @@ -1,255 +0,0 @@ ---[[ -lvim is the global options object - -Linters should be -filled in as strings with either -a global executable or a path to -an executable -]] --- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT - --- general -lvim.log.level = "warn" -lvim.format_on_save.enabled = true -lvim.colorscheme = "dracula" -lvim.transparent_window = true --- to disable icons and use a minimalist setup, uncomment the following --- lvim.use_icons = false - --- keymappings [view all the defaults by pressing Lk] -lvim.leader = "space" --- add your own keymapping -lvim.keys.normal_mode[""] = ":w" -lvim.keys.normal_mode[""] = ":BufferLineCycleNext" -lvim.keys.normal_mode[""] = ":BufferLineCyclePrev" --- unmap a default keymapping --- vim.keymap.del("n", "") --- override a default keymapping --- lvim.keys.normal_mode[""] = ":q" -- or vim.keymap.set("n", "", ":q" ) - --- Change Telescope navigation to use j and k for navigation and n and p for history in both input and normal mode. --- we use protected-mode (pcall) just in case the plugin wasn't loaded yet. --- local _, actions = pcall(require, "telescope.actions") --- lvim.builtin.telescope.defaults.mappings = { --- -- for input mode --- i = { --- [""] = actions.move_selection_next, --- [""] = actions.move_selection_previous, --- [""] = actions.cycle_history_next, --- [""] = actions.cycle_history_prev, --- }, --- -- for normal mode --- n = { --- [""] = actions.move_selection_next, --- [""] = actions.move_selection_previous, --- }, --- } - --- Change theme settings --- lvim.builtin.theme.options.dim_inactive = true --- lvim.builtin.theme.options.style = "storm" - --- Use which-key to add extra bindings with the leader-key prefix --- lvim.builtin.which_key.mappings["P"] = { "Telescope projects", "Projects" } --- lvim.builtin.which_key.mappings["t"] = { --- name = "+Trouble", --- r = { "Trouble lsp_references", "References" }, --- f = { "Trouble lsp_definitions", "Definitions" }, --- d = { "Trouble document_diagnostics", "Diagnostics" }, --- q = { "Trouble quickfix", "QuickFix" }, --- l = { "Trouble loclist", "LocationList" }, --- w = { "Trouble workspace_diagnostics", "Workspace Diagnostics" }, --- } - --- VIM general settings -vim.opt.relativenumber = true -vim.opt.title = false - --- TODO: User Config for predefined plugins --- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile -lvim.builtin.alpha.active = true -lvim.builtin.alpha.mode = "dashboard" -lvim.builtin.terminal.active = true -lvim.builtin.nvimtree.setup.view.side = "left" -lvim.builtin.nvimtree.setup.renderer.icons.show.git = false - --- if you don't want all the parsers change this to a table of the ones you want -lvim.builtin.treesitter.ensure_installed = { - "bash", - "c", - "javascript", - "json", - "lua", - "python", - "typescript", - "tsx", - "css", - "rust", - "java", - "yaml", - "gdscript" -} - -lvim.builtin.treesitter.ignore_install = { "haskell" } -lvim.builtin.treesitter.highlight.enable = true - --- generic LSP settings - --- -- make sure server will always be installed even if the server is in skipped_servers list --- lvim.lsp.installer.setup.ensure_installed = { --- "sumneko_lua", --- "jsonls", --- } --- -- change UI setting of `LspInstallInfo` --- -- see --- lvim.lsp.installer.setup.ui.check_outdated_servers_on_open = false --- lvim.lsp.installer.setup.ui.border = "rounded" --- lvim.lsp.installer.setup.ui.keymaps = { --- uninstall_server = "d", --- toggle_server_expand = "o", --- } - --- ---@usage disable automatic installation of servers --- lvim.lsp.installer.setup.automatic_installation = false - --- ---configure a server manually. !!Requires `:LvimCacheReset` to take effect!! --- ---see the full default list `:lua print(vim.inspect(lvim.lsp.automatic_configuration.skipped_servers))` --- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" }) --- local opts = {} -- check the lspconfig documentation for a list of all possible options --- require("lvim.lsp.manager").setup("pyright", opts) - --- ---remove a server from the skipped list, e.g. eslint, or emmet_ls. !!Requires `:LvimCacheReset` to take effect!! --- ---`:LvimInfo` lists which server(s) are skipped for the current filetype --- lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server) --- return server ~= "emmet_ls" --- end, lvim.lsp.automatic_configuration.skipped_servers) - --- -- you can set a custom on_attach function that will be used for all the language servers --- -- See --- lvim.lsp.on_attach_callback = function(client, bufnr) --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --Enable completion triggered by --- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") --- end - --- -- set a formatter, this will override the language server formatting capabilities (if it exists) --- local formatters = require "lvim.lsp.null-ls.formatters" --- formatters.setup { --- { command = "black", filetypes = { "python" } }, --- { command = "isort", filetypes = { "python" } }, --- { --- -- each formatter accepts a list of options identical to https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md#Configuration --- command = "prettier", --- ---@usage arguments to pass to the formatter --- -- these cannot contain whitespaces, options such as `--line-width 80` become either `{'--line-width', '80'}` or `{'--line-width=80'}` --- extra_args = { "--print-with", "100" }, --- ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. --- filetypes = { "typescript", "typescriptreact" }, --- }, --- } - --- -- set additional linters --- local linters = require "lvim.lsp.null-ls.linters" --- linters.setup { --- { command = "flake8", filetypes = { "python" } }, --- { --- -- each linter accepts a list of options identical to https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main/doc/BUILTINS.md#Configuration --- command = "shellcheck", --- ---@usage arguments to pass to the formatter --- -- these cannot contain whitespaces, options such as `--line-width 80` become either `{'--line-width', '80'}` or `{'--line-width=80'}` --- extra_args = { "--severity", "warning" }, --- }, --- { --- command = "codespell", --- ---@usage specify which filetypes to enable. By default a providers will attach to all the filetypes it supports. --- filetypes = { "javascript", "python" }, --- }, --- } - -local command_resolver = require("null-ls.helpers.command_resolver") -require("null-ls").register({ - sources = { - -- Configure ESLint to properly use Yarn 2+ - require("null-ls").builtins.diagnostics.eslint.with({ - dynamic_command = command_resolver.from_yarn_pnp(), - conditions = function(utils) - return utils.root_has_file({ ".pnp.cjs" }) - end - }), - }, -}) - --- --- Configure LSP --- - -require("lvim.lsp.manager").setup("gdscript", { - on_attach = require("lvim.lsp.manager").on_attach, - flags = { - debounce_text_changes = 150 - } -}) - --- --- Configure debuggers --- - -local dap = require("dap") - -dap.adapters.codelldb = { - type = "server", - port = "${port}", - executable = { - command = "/home/wizardlink/.local/share/codelldb/extension/adapter/codelldb", - args = {"--port", "${port}"}, - } -} - -dap.configurations.rust = { - { - name = "Launch file", - type = "codelldb", - request = "launch", - program = function() - return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") - end, - cwd = "${workspaceFolder}", - stopOnEntry = false, - }, - -- { - -- name = "Attach to gdbserver :1234", - -- type = "codelldb", - -- request = "launch", - -- MIMode = "gdb", - -- miDebuggerServerAddress = "localhost:1234", - -- miDebuggerPath = "/home/wizardlink/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rust-gdb", - -- cwd = "${workspaceFolder}", - -- program = function() - -- return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") - -- end, - -- }, -} - --- Additional Plugins -lvim.plugins = { - { "dracula/vim" }, - { "gpanders/editorconfig.nvim" }, - { "alaviss/nim.nvim" }, - { "morhetz/gruvbox" } -} - --- Autocommands (https://neovim.io/doc/user/autocmd.html) --- vim.api.nvim_create_autocmd("BufEnter", { --- pattern = { "*.json", "*.jsonc" }, --- -- enable wrap mode for json files only --- command = "setlocal wrap", --- }) --- vim.api.nvim_create_autocmd("FileType", { --- pattern = "zsh", --- callback = function() --- -- let treesitter use bash highlight for zsh files as well --- require("nvim-treesitter.highlight").attach(0, "bash") --- end, --- }) diff --git a/.config/pipewire/pipewire.conf.d/99-input-denoising.conf b/.config/pipewire/pipewire.conf.d/99-input-denoising.conf deleted file mode 100644 index 3bff588..0000000 --- a/.config/pipewire/pipewire.conf.d/99-input-denoising.conf +++ /dev/null @@ -1,33 +0,0 @@ -context.modules = [ -{ name = libpipewire-module-filter-chain - args = { - node.description = "Noise Canceling source" - media.name = "Noise Canceling source" - filter.graph = { - nodes = [ - { - type = ladspa - name = rnnoise - plugin = /home/wizardlink/.local/share/pipewire/librnnoise_ladspa.so - label = noise_suppressor_mono - control = { - "VAD Threshold (%)" 75.0 - "VAD Grace Period (ms)" 300 - "Retroactive VAD Grace (ms)" 0 - } - } - ] - } - capture.props = { - node.name = "capture.rnnoise_source" - node.passive = true - audio.rate = 48000 - } - playback.props = { - node.name = "rnnoise_source" - media.class = Audio/Source - audio.rate = 48000 - } - } -} -] diff --git a/.config/qt5ct/colors/Dracula.conf b/.config/qt5ct/colors/Dracula.conf deleted file mode 100644 index 93b37d5..0000000 --- a/.config/qt5ct/colors/Dracula.conf +++ /dev/null @@ -1,4 +0,0 @@ -[ColorScheme] -active_colors=#ffbd93f9, #ff424559, #ff484d6b, #ff6272a4, #ff44475a, #ff44475a, #ff6272a4, #ff44475a, #ffbd93f9, #ff282a36, #ff282a36, #ff44475a, #ff6272a4, #ffbd93f9, #ff8be9fd, #ff8be9fd, #ff44475a, #ff6272a4, #ff44475a, #fff8f8f2, #ff44475a -disabled_colors=#ffbd93f9, #ff424559, #ff484d6b, #ff6272a4, #ff44475a, #ff44475a, #ff6272a4, #ff44475a, #ffbd93f9, #ff282a36, #ff282a36, #ff44475a, #ff6272a4, #ffbd93f9, #ff8be9fd, #ff8be9fd, #ff44475a, #ff6272a4, #ff44475a, #fff8f8f2, #ff44475a -inactive_colors=#ffbd93f9, #ff424559, #ff484d6b, #ff6272a4, #ff44475a, #ff44475a, #ff6272a4, #ff44475a, #ffbd93f9, #ff282a36, #ff282a36, #ff44475a, #ff6272a4, #ffbd93f9, #ff8be9fd, #ff8be9fd, #ff44475a, #ff6272a4, #ff44475a, #fff8f8f2, #ff44475a diff --git a/.config/sway/config b/.config/sway/config deleted file mode 100644 index 9f66829..0000000 --- a/.config/sway/config +++ /dev/null @@ -1,324 +0,0 @@ -# Default config for sway -# -# Copy this to ~/.config/sway/config and edit it to your liking. -# -# Read `man 5 sway` for a complete reference. - -### Variables -# -# Logo key. Use Mod1 for Alt. -set $mod Mod4 -# Home row direction keys, like vim -set $left h -set $down j -set $up k -set $right l -# Your preferred terminal emulator -set $term wezterm -# Your preferred application launcher -# Note: pass the final command to swaymsg so that the resulting window can be opened -# on the original workspace that the command was run on. -set $menu wofi | xargs swaymsg exec -- - -### Output configuration -# -# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) -output DP-2 bg /mnt/internal/personal/wallpapers/wallhaven-7286p3.png fill -output DP-3 bg /mnt/internal/personal/wallpapers/wallhaven-rd92qj.png fill -# -# Example configuration: -# -# output HDMI-A-1 resolution 1920x1080 position 1920,0 - -output DP-2 mode 1920x1080@143.999Hz position 0,520 -output DP-3 mode 1920x1080@74.973Hz position 1920,0 - -# Portrait mode for second monitor -output DP-3 transform 90 - -# Turn on VRR -output DP-2 adaptive_sync off -output DP-3 adaptive_sync off - -# -# You can get the names of your outputs by running: swaymsg -t get_outputs - -### Idle configuration -# -# Example configuration: -# -# exec swayidle -w \ -# timeout 300 'swaylock -f -c 000000' \ -# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ -# before-sleep 'swaylock -f -c 000000' -# -# This will lock your screen after 300 seconds of inactivity, then turn off -# your displays after another 300 seconds, and turn your screens back on when -# resumed. It will also lock your screen before your computer goes to sleep. - -### Input configuration -# -# Example configuration: -# -# input "2:14:SynPS/2_Synaptics_TouchPad" { -# dwt enabled -# tap enabled -# natural_scroll enabled -# middle_emulation enabled -# } -# -# You can get the names of your inputs by running: swaymsg -t get_inputs -# Read `man 5 sway-input` for more information about this section. - -input "type:pointer" { - accel_profile "flat" - pointer_accel 0 -} - -input "type:keyboard" { - xkb_layout us,br - xkb_options grp:ctrls_toggle -} - -### Key bindings -# -# Basics: -# - # Start a terminal - bindsym $mod+Return exec $term - - # Kill focused window - bindsym $mod+Shift+q kill - - # Start your launcher - bindsym $mod+d exec $menu - - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal - - # Reload the configuration file - bindsym $mod+Shift+c reload - - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e exec swaymsg exit - #bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' -# -# Moving around: -# - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # Or use $mod+[up|down|left|right] - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # Ditto, with arrow keys - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right -# -# Workspaces: -# - # Switch to workspace - bindsym $mod+1 workspace number 1 - bindsym $mod+2 workspace number 2 - bindsym $mod+3 workspace number 3 - bindsym $mod+4 workspace number 4 - bindsym $mod+5 workspace number 5 - bindsym $mod+6 workspace number 6 - bindsym $mod+7 workspace number 7 - bindsym $mod+8 workspace number 8 - #Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace number 1 - bindsym $mod+Shift+2 move container to workspace number 2 - bindsym $mod+Shift+3 move container to workspace number 3 - bindsym $mod+Shift+4 move container to workspace number 4 - bindsym $mod+Shift+5 move container to workspace number 5 - bindsym $mod+Shift+6 move container to workspace number 6 - bindsym $mod+Shift+7 move container to workspace number 7 - bindsym $mod+Shift+8 move container to workspace number 8 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. - - workspace 1 output DP-2 - workspace 2 output DP-3 - workspace 3 output DP-2 - workspace 4 output DP-3 - workspace 5 output DP-2 - workspace 6 output DP-3 - workspace 7 output DP-2 - workspace 8 output DP-3 - - bindsym $mod+Ctrl+$left workspace prev - bindsym $mod+Ctrl+$right workspace next - bindsym $mod+Ctrl+Shift+$left workspace prev_on_output - bindsym $mod+Ctrl+Shift+$right workspace next_on_output - - bindsym $mod+Ctrl+Space workspace back_and_forth -# -# Layout stuff: -# - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - bindsym $mod+b splith - bindsym $mod+v splitv - - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - - # Make the current focus fullscreen - bindsym $mod+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+space floating toggle - - # Swap focus between the tiling area and the floating area - bindsym $mod+space focus mode_toggle - - # Move focus to the parent container - bindsym $mod+a focus parent -# -# Scratchpad: -# - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show -# -# Resizing containers: -# -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -# -# Screenshots: -# -bindsym Print exec grimshot save area "/mnt/internal/personal/screenshots/$(date '+%Y-%m-%d_%H-%M-%S').png" -bindsym Shift+Print exec grimshot save output "/mnt/internal/personal/screenshots/$(date '+%Y-%m-%d_%H-%M-%S').png" -bindsym Ctrl+Print exec grimshot save active "/mnt/internal/personal/screenshots/$(date '+%Y-%m-%d_%H-%M-%S').png" -bindsym Ctrl+Alt+Print exec grimshot copy area - -# bindsym Print exec flameshot gui -c -# bindsym Shift+Print exec flameshot screen -c -# bindsym Ctrl+Print exec flameshot full -c - -# -# Custom: -# -bindsym Ctrl+Alt+Return exec ~/.local/bin/emacs - -### Looks -# -# Status Bar: -# -# Read `man 5 sway-bar` for more information about this section. -#bar { -# output DP-2 - -# position top -# height 18 -# font FantasqueSansMono NF - -# strip_workspace_name yes -# strip_workspace_numbers yes -# workspace_min_width 4 - -# # When the status_command prints a new line to stdout, swaybar updates. -# # The default just shows the current date and time. -# #status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done - -# colors { -# statusline #000000 -# background #ffffff - -# focused_workspace #ffffff #000000 #ffffff -# active_workspace #ffffff #000000 #ffffff -# inactive_workspace #000000 #ffffff #000000 -# } -#} -bar swaybar_command waybar - -# -# Colors: -# -# The explanation is under `man 5 sway-bar` -client.focused #BD93F9 #BD93F9 #282A36 #BD93F9 -client.focused_inactive #282A36 #282A36 #BD93F9 #282A36 -client.unfocused #282A36 #282A36 #BD93F9 #282A36 - -# -# Font: -# -font FantasqueSansMono NF - -# -# Border: -# -default_border pixel 2 -default_floating_border pixel 2 - -# -# Gaps: -# -gaps outer 12 -gaps inner 18 - -### Prrograms -# -# Startup programs: -# -exec lxpolkit -exec mako -#exec /home/wizardlink/.local/share/scripts/vision_health - -include /etc/sway/config.d/* - -# -# Window settings -# -for_window [title="Awakened PoE Trade"] floating enable -for_window [title="Godot"] floating enable -for_window [title="Retro Gadgets"] floating enable -for_window [title="DeaDBeeF"] floating enable -# for_window [app_id="xdg-desktop-portal-gnome"] floating enable diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs deleted file mode 100644 index 7f9a959..0000000 --- a/.config/user-dirs.dirs +++ /dev/null @@ -1,15 +0,0 @@ -# This file is written by xdg-user-dirs-update -# If you want to change or add directories, just edit the line you're -# interested in. All local changes will be retained on the next run. -# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped -# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an -# absolute path. No other format is supported. -# -XDG_DESKTOP_DIR="$HOME/Desktop" -XDG_DOWNLOAD_DIR="$HOME/Downloads" -XDG_TEMPLATES_DIR="$HOME/Templates" -XDG_PUBLICSHARE_DIR="$HOME/Public" -XDG_DOCUMENTS_DIR="$HOME/Documents" -XDG_MUSIC_DIR="$HOME/Music" -XDG_PICTURES_DIR="$HOME/Pictures" -XDG_VIDEOS_DIR="$HOME/Videos" diff --git a/.config/user-dirs.locale b/.config/user-dirs.locale deleted file mode 100644 index 3e0b419..0000000 --- a/.config/user-dirs.locale +++ /dev/null @@ -1 +0,0 @@ -en_US \ No newline at end of file diff --git a/.config/vlc/vlc-qt-interface.conf b/.config/vlc/vlc-qt-interface.conf deleted file mode 100644 index e706187..0000000 --- a/.config/vlc/vlc-qt-interface.conf +++ /dev/null @@ -1,39 +0,0 @@ -[General] -codecs-profiles-selected=Video - H.264 + MP3 (MP4) -filedialog-path=@Variant(\0\0\0\x11\0\0\0ufile:///mnt/internal/shared/jellyfin/anime/Sonny%20Boy/[SubsPlease]%20Sonny%20Boy%20-%2004%20(1080p)%20[47527457].mkv) -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xcb\0\0\x2@\0\0\a_\0\0\x6\x1f\0\0\x4\x38\0\0\x2\x1c\0\0\v\xb7\0\0\x6S\0\0\0\0\x2\0\0\0\a\x80\0\0\x3\xcb\0\0\x2@\0\0\a_\0\0\x6\x1f) - -[FullScreen] -pos=@Point(560 1536) -screen=@Rect(0 520 1920 1080) -wide=false - -[MainWindow] -adv-controls=0 -bgSize=@Size(100 30) -pl-dock-status=true -playlist-visible=true -playlistSize=@Size(917 918) -status-bar-visible=false - -[Messages] -geometry="@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xc6\0\0\0\"\0\0\au\0\0\x4-\0\0\x2\x94\0\0\x1;\0\0\x4\xeb\0\0\x2\xfc\0\0\0\0\x2\0\0\0\a\x80\0\0\x3\xc6\0\0\0\"\0\0\au\0\0\x4-)" - -[OpenDialog] -advanced=false -netMRL= -size=@Size(526 423) - -[Playlist] -headerStateV2=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\xff\xff\xff\xff\x1\0\0\0\0\0\0\0\0\0\0\0\r\xec\x1f\0\0\0\n\0\0\0\f\0\0\0\x64\0\0\0\x2\0\0\0\x64\0\0\0\x3\0\0\0\x64\0\0\0\x6\0\0\0\x64\0\0\0\a\0\0\0\x64\0\0\0\x5\0\0\0\x64\0\0\0\n\0\0\0\x64\0\0\0\v\0\0\0\x64\0\0\0\b\0\0\0\x64\0\0\0\t\0\0\0\x64\0\0\x2\xdb\0\0\0\r\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\r\0\0\x1\x45\0\0\0\x1\0\0\0\0\0\0\0P\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x1\x46\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64) -leftSplitterGeometry=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xc0\0\0\0\x80\x1\xff\xff\xff\xff\x1\0\0\0\x2\0) -splitterSizes=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xb4\0\0\x1\xa4\x1\xff\xff\xff\xff\x1\0\0\0\x1\0) -view-mode=1 -zoom=0 - -[RecentsMRL] -list=file:///mnt/internal/shared/jellyfin/anime/Sonny%20Boy/[SubsPlease]%20Sonny%20Boy%20-%2004%20(1080p)%20[47527457].mkv, file:///mnt/internal/shared/jellyfin/anime/Sonny%20Boy/[SubsPlease]%20Sonny%20Boy%20-%2004%20(1080p)%20[47527457].por.ass, https://cdn.jmvstream.com/w/LVW-8155/ngrp:LVW8155_41E1ciuCvO_all/playlist.m3u8, file:///home/wizardlink/Desktop/br.m3u, http://edge1.cl.grupoz.cl/aeradio/live/index.m3u8, https://unlimited1-us.dps.live/adntv/adntv.smil/playlist.m3u8, https://ythls.onrender.com/channel/UCTXNz3gjAypWp3EhlIATEJQ.m3u8, https://unlimited1-cl-isp.dps.live/13t/13t.smil/playlist.m3u8, https://unlimited2-cl-isp.dps.live/13p/13p.smil/playlist.m3u8, https://unlimited1-cl-isp.dps.live/13e/13e.smil/playlist.m3u8, https://unlimited2-cl-isp.dps.live/13cultura/13cultura.smil/playlist.m3u8, file:///home/wizardlink/Desktop/cl.m3u, http://www.portalcultura.com.br/playerhtml/funtelpa/tv_funtelpa/playlist.m3u8, https://5c483b9d1019c.streamlock.net/8066/8066/playlist.m3u8, http://93.152.174.144:4000/play/sic/index.m3u8, https://slbps-ml-sambatech.akamaized.net/samba-live/2472/7424/8a00fe7cc36ac263b2c3e9324497d5ff/video/621b6f2c-2dc6-41f1-9302-f9583c96ee31_index.m3u8, https://video-auth2.iol.pt/live_tvi_ficcao/live_tvi_ficcao/edge_servers/tvificcao-720p/playlist.m3u8, http://cdn.tvmatic.net/comedy.m3u8, http://213.13.26.11:1935/live/sobrenaturaltv/livestream.m3u8, https://59f1cbe63db89.streamlock.net:1443/tvmax/tvmax/playlist.m3u8, file:///home/wizardlink/Desktop/por.m3u, file:///home/wizardlink/Desktop/hzbuve_camera%2014@719324819_DS-7216HGHI-F1(719324819)_20230728121610_20230728121824_11386969.mp4, file:///home/wizardlink/Desktop/20230728_20230728121638_20230728121825_121716.mp4, file:///home/wizardlink/internal/personal/memes/cp.mp4, file:///home/wizardlink/internal/personal/memes/dangerously_cheesy-qDHuFOOKl6c.mp4, file:///home/wizardlink/internal/personal/memes/hat_powered_by_sadness.mp4, file:///home/wizardlink/internal/personal/memes/gib_cosmetic-Ep4ThJ8cQhs.mp4, file:///home/wizardlink/internal/personal/memes/gari_mod-XbH_YSh5ZHw.mp4, file:///home/wizardlink/internal/personal/memes/hoje_tem_festinha-VrgGi7Va33Y.mp4, file:///home/wizardlink/internal/personal/memes/paywall-3Pa26FJJzMc.mp4 -times=143168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - -[playlistdialog] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2\x94\0\0\x2\xc6\0\0\x4\xeb\0\0\x5\x81\0\0\x2\x94\0\0\x2\xc6\0\0\x4\xeb\0\0\x5\x81\0\0\0\0\0\0\0\0\a\x80\0\0\x2\x94\0\0\x2\xc6\0\0\x4\xeb\0\0\x5\x81) diff --git a/.config/vlc/vlcrc b/.config/vlc/vlcrc deleted file mode 100644 index c779e28..0000000 --- a/.config/vlc/vlcrc +++ /dev/null @@ -1,5385 +0,0 @@ -### -### vlc 3.0.18 -### - -### -### lines beginning with a '#' character are comments -### - -[visual] # Visualizer filter - -# Effects list (string) -#effect-list=spectrum - -# Video width (integer) -#effect-width=800 - -# Video height (integer) -#effect-height=500 - -# FFT window (string) -#effect-fft-window=flat - -# Kaiser window parameter (float) -#effect-kaiser-param=3.000000 - -# Show 80 bands instead of 20 (boolean) -#visual-80-bands=1 - -# Draw peaks in the analyzer (boolean) -#visual-peaks=1 - -# Enable original graphic spectrum (boolean) -#spect-show-original=0 - -# Draw the base of the bands (boolean) -#spect-show-base=1 - -# Base pixel radius (integer) -#spect-radius=42 - -# Spectral sections (integer) -#spect-sections=3 - -# V-plane color (integer) -#spect-color=80 - -# Draw bands in the spectrometer (boolean) -#spect-show-bands=1 - -# Show 80 bands instead of 20 (boolean) -#spect-80-bands=1 - -# Number of blank pixels between bands. (integer) -#spect-separ=1 - -# Amplification (integer) -#spect-amp=8 - -# Draw peaks in the analyzer (boolean) -#spect-show-peaks=1 - -# Peak extra width (integer) -#spect-peak-width=61 - -# Peak height (integer) -#spect-peak-height=1 - -[glspectrum] # 3D OpenGL spectrum visualization - -# Video width (integer) -#glspectrum-width=400 - -# Video height (integer) -#glspectrum-height=300 - -[wall] # Wall video filter - -# Number of columns (integer) -#wall-cols=3 - -# Number of rows (integer) -#wall-rows=3 - -# Active windows (string) -#wall-active= - -# Element aspect ratio (string) -#wall-element-aspect=16:9 - -[panoramix] # Panoramix: wall with overlap video filter - -# Number of columns (integer) -#panoramix-cols=-1 - -# Number of rows (integer) -#panoramix-rows=-1 - -# length of the overlapping area (in %) (integer) -#panoramix-bz-length=100 - -# height of the overlapping area (in %) (integer) -#panoramix-bz-height=100 - -# Attenuation (boolean) -#panoramix-attenuate=1 - -# Attenuation, begin (in %) (integer) -#panoramix-bz-begin=0 - -# Attenuation, middle (in %) (integer) -#panoramix-bz-middle=50 - -# Attenuation, end (in %) (integer) -#panoramix-bz-end=100 - -# middle position (in %) (integer) -#panoramix-bz-middle-pos=50 - -# Gamma (Red) correction (float) -#panoramix-bz-gamma-red=1.000000 - -# Gamma (Green) correction (float) -#panoramix-bz-gamma-green=1.000000 - -# Gamma (Blue) correction (float) -#panoramix-bz-gamma-blue=1.000000 - -# Black Crush for Red (integer) -#panoramix-bz-blackcrush-red=140 - -# Black Crush for Green (integer) -#panoramix-bz-blackcrush-green=140 - -# Black Crush for Blue (integer) -#panoramix-bz-blackcrush-blue=140 - -# White Crush for Red (integer) -#panoramix-bz-whitecrush-red=200 - -# White Crush for Green (integer) -#panoramix-bz-whitecrush-green=200 - -# White Crush for Blue (integer) -#panoramix-bz-whitecrush-blue=200 - -# Black Level for Red (integer) -#panoramix-bz-blacklevel-red=150 - -# Black Level for Green (integer) -#panoramix-bz-blacklevel-green=150 - -# Black Level for Blue (integer) -#panoramix-bz-blacklevel-blue=150 - -# White Level for Red (integer) -#panoramix-bz-whitelevel-red=0 - -# White Level for Green (integer) -#panoramix-bz-whitelevel-green=0 - -# White Level for Blue (integer) -#panoramix-bz-whitelevel-blue=0 - -# Active windows (string) -#panoramix-active= - -[clone] # Clone video filter - -# Number of clones (integer) -#clone-count=2 - -# Video output modules (string) -#clone-vout-list= - -[yuv] # YUV video output - -# device, fifo or filename (string) -#yuv-file=stream.yuv - -# Chroma used (string) -#yuv-chroma= - -# Add a YUV4MPEG2 header (boolean) -#yuv-yuv4mpeg2=0 - -[xdg_shell] # XDG shell surface - -# Wayland display (string) -#wl-display= - -[xcb_xv] # XVideo output (XCB) - -# XVideo adaptor number (integer) -#xvideo-adaptor=-1 - -# XVideo format id (integer) -#xvideo-format-id=0 - -[xcb_x11] # X11 video output (XCB) - -[xcb_window] # X11 video window (XCB) - -# X11 display (string) -#x11-display= - -[wl_shell] # Wayland shell surface - -# Wayland display (string) -#wl-display= - -[vmem] # Video memory output - -# Width (integer) -#vmem-width=320 - -# Height (integer) -#vmem-height=200 - -# Pitch (integer) -#vmem-pitch=640 - -# Chroma (string) -#vmem-chroma=RV16 - -[vdummy] # Dummy video output - -# Dummy image chroma format (string) -#dummy-chroma= - -[gl] # OpenGL video output - -# OpenGL extension (string) -#gl= - -# Open GL/GLES hardware converter (string) -#glconv= - -# Rendering intent for color conversion (integer) -#rendering-intent=1 - -# Display primaries (integer) -#target-prim=0 - -# Display gamma / transfer function (integer) -#target-trc=0 - -# Tone-mapping algorithm (integer) -#tone-mapping=3 - -# Tone-mapping parameter (float) -#tone-mapping-param=0.000000 - -# Highlight clipped pixels (boolean) -#tone-mapping-warn=0 - -# Dithering algorithm (integer) -#dither-algo=-1 - -# Dither depth override (0 = framebuffer depth) (integer) -#dither-depth=0 - -# Desaturation strength (float) -#desat-strength=0.000000 - -# Desaturation exponent (float) -#desat-exponent=0.000000 - -# Desaturation base (float) -#desat-base=0.000000 - -# Maximum brightness boost (float) -#max-boost=0.000000 - -[flaschen] # Flaschen-Taschen video output - -# Flaschen-Taschen display address (string) -#flaschen-display= - -# Width (integer) -#flaschen-width=25 - -# Height (integer) -#flaschen-height=20 - -[fb] # GNU/Linux framebuffer video output - -# Framebuffer device (string) -#fbdev=/dev/fb0 - -# Run fb on current tty (boolean) -#fb-tty=1 - -# Image format (default RGB) (string) -#fb-chroma= - -# Framebuffer resolution to use (integer) -#fb-mode=4 - -# Framebuffer uses hw acceleration (boolean) -#fb-hw-accel=1 - -[transform] # Video transformation filter - -# Transform type (string) -#transform-type=90 - -[sharpen] # Sharpen video filter - -# Sharpen strength (0-2) (float) -#sharpen-sigma=0.050000 - -[sepia] # Sepia video filter - -# Sepia intensity (integer) -#sepia-intensity=120 - -[scene] # Scene video filter - -# Image format (string) -#scene-format=png - -# Image width (integer) -#scene-width=-1 - -# Image height (integer) -#scene-height=-1 - -# Filename prefix (string) -#scene-prefix=scene - -# Directory path prefix (string) -#scene-path= - -# Always write to the same file (boolean) -#scene-replace=0 - -# Recording ratio (integer) -#scene-ratio=50 - -[rotate] # Rotate video filter - -# Angle in degrees (float) -#rotate-angle=30.000000 - -# Use motion sensors (boolean) -#rotate-use-motion=0 - -[puzzle] # Puzzle interactive game video filter - -# Number of puzzle rows (integer) -#puzzle-rows=4 - -# Number of puzzle columns (integer) -#puzzle-cols=4 - -# Border (integer) -#puzzle-border=3 - -# Small preview (boolean) -#puzzle-preview=0 - -# Small preview size (integer) -#puzzle-preview-size=15 - -# Piece edge shape size (integer) -#puzzle-shape-size=90 - -# Auto shuffle (integer) -#puzzle-auto-shuffle=0 - -# Auto solve (integer) -#puzzle-auto-solve=0 - -# Rotation (integer) -#puzzle-rotation=0 - -# Game mode (integer) -#puzzle-mode=0 - -[postproc] # Video post processing filter - -# Post processing quality (integer) -#postproc-q=6 - -# FFmpeg post processing filter chains (string) -#postproc-name=default - -[posterize] # Posterize video filter - -# Posterize level (integer) -#posterize-level=6 - -[motionblur] # Motion blur filter - -# Blur factor (1-127) (integer) -#blur-factor=80 - -[mirror] # Mirror video filter - -# Mirror orientation (integer) -#mirror-split=0 - -# Direction (integer) -#mirror-direction=0 - -[hqdn3d] # High Quality 3D Denoiser filter - -# Spatial luma strength (0-254) (float) -#hqdn3d-luma-spat=4.000000 - -# Spatial chroma strength (0-254) (float) -#hqdn3d-chroma-spat=3.000000 - -# Temporal luma strength (0-254) (float) -#hqdn3d-luma-temp=6.000000 - -# Temporal chroma strength (0-254) (float) -#hqdn3d-chroma-temp=4.500000 - -[grain] # Grain video filter - -# Variance (float) -#grain-variance=2.000000 - -# Minimal period (integer) -#grain-period-min=1 - -# Maximal period (integer) -#grain-period-max=48 - -[gradient] # Gradient video filter - -# Distort mode (string) -#gradient-mode=gradient - -# Gradient image type (integer) -#gradient-type=0 - -# Apply cartoon effect (boolean) -#gradient-cartoon=1 - -[gradfun] # Gradfun video filter - -# Radius (integer) -#gradfun-radius=16 - -# Strength (float) -#gradfun-strength=1.200000 - -[gaussianblur] # Gaussian blur video filter - -# Gaussian's std deviation (float) -#gaussianblur-sigma=2.000000 - -[fps] # FPS conversion video filter - -# Frame rate (string) -#fps-fps= - -[extract] # Extract RGB component video filter - -# RGB component to extract (integer) -#extract-component=16711680 - -[erase] # Erase video filter - -# Image mask (string) -#erase-mask= - -# X coordinate (integer) -#erase-x=0 - -# Y coordinate (integer) -#erase-y=0 - -[deinterlace] # Deinterlacing video filter - -# Streaming deinterlace mode (string) -#sout-deinterlace-mode=blend - -# Phosphor chroma mode for 4:2:0 input (integer) -#sout-deinterlace-phosphor-chroma=2 - -# Phosphor old field dimmer strength (integer) -#sout-deinterlace-phosphor-dimmer=2 - -[croppadd] # Video cropping filter - -# Pixels to crop from top (integer) -#croppadd-croptop=0 - -# Pixels to crop from bottom (integer) -#croppadd-cropbottom=0 - -# Pixels to crop from left (integer) -#croppadd-cropleft=0 - -# Pixels to crop from right (integer) -#croppadd-cropright=0 - -# Pixels to padd to top (integer) -#croppadd-paddtop=0 - -# Pixels to padd to bottom (integer) -#croppadd-paddbottom=0 - -# Pixels to padd to left (integer) -#croppadd-paddleft=0 - -# Pixels to padd to right (integer) -#croppadd-paddright=0 - -[colorthres] # Color threshold filter - -# Color (integer) -#colorthres-color=16711680 - -# Saturation threshold (integer) -#colorthres-saturationthres=20 - -# Similarity threshold (integer) -#colorthres-similaritythres=15 - -[canvas] # Canvas video filter - -# Output width (integer) -#canvas-width=0 - -# Output height (integer) -#canvas-height=0 - -# Output picture aspect ratio (string) -#canvas-aspect= - -# Pad video (boolean) -#canvas-padd=1 - -[bluescreen] # Bluescreen video filter - -# Bluescreen U value (integer) -#bluescreen-u=120 - -# Bluescreen V value (integer) -#bluescreen-v=90 - -# Bluescreen U tolerance (integer) -#bluescreen-ut=17 - -# Bluescreen V tolerance (integer) -#bluescreen-vt=17 - -[blendbench] # Blending benchmark filter - -# Number of time to blend (integer) -#blendbench-loops=1000 - -# Alpha of the blended image (integer) -#blendbench-alpha=128 - -# Image to be blended onto (string) -#blendbench-base-image= - -# Chroma for the base image (string) -#blendbench-base-chroma=I420 - -# Image which will be blended (string) -#blendbench-blend-image= - -# Chroma for the blend image (string) -#blendbench-blend-chroma=YUVA - -[ball] # Ball video filter - -# Ball color (string) -#ball-color=red - -# Ball speed (integer) -#ball-speed=4 - -# Ball size (integer) -#ball-size=10 - -# Gradient threshold (integer) -#ball-gradient-threshold=40 - -# Edge visible (boolean) -#ball-edge-visible=1 - -[antiflicker] # antiflicker video filter - -# Window size (integer) -#antiflicker-window-size=10 - -# Softening value (integer) -#antiflicker-softening-size=10 - -[anaglyph] # Convert 3D picture to anaglyph image video filter - -# Color scheme (string) -#anaglyph-scheme=red-cyan - -[alphamask] # Alpha mask video filter - -# Transparency mask (string) -#alphamask-mask= - -[adjust] # Image properties filter - -# Image contrast (0-2) (float) -#contrast=1.000000 - -# Image brightness (0-2) (float) -#brightness=1.000000 - -# Image hue (-180..180) (float) -#hue=0.000000 - -# Image saturation (0-3) (float) -#saturation=1.000000 - -# Image gamma (0-10) (float) -#gamma=1.000000 - -# Brightness threshold (boolean) -#brightness-threshold=0 - -[swscale] # Video scaling filter - -# Scaling mode (integer) -#swscale-mode=2 - -[vdpau_chroma] # VDPAU surface conversions - -# Deinterlace (integer) -#vdpau-deinterlace=1 - -# Inverse telecine (boolean) -#vdpau-ivtc=0 - -# Deinterlace chroma skip (boolean) -#vdpau-chroma-skip=0 - -# Noise reduction level (float) -#vdpau-noise-reduction=0.000000 - -# Scaling quality (integer) -#vdpau-scaling=0 - -[vaapi_filters] # Video Accelerated API filters - -# Denoise strength (0-2) (float) -#denoise-sigma=1.000000 - -[svg] # svg - -# SVG template file (string) -#svg-template-file= - -[freetype] # Freetype2 font renderer - -# Font (string) -#freetype-font=DejaVuSans - -# Monospace Font (string) -#freetype-monofont=DejaVuSansMono - -# Font size in pixels (integer) -#freetype-fontsize=0 - -# Relative font size (integer) -#freetype-rel-fontsize=0 - -# Text opacity (integer) -#freetype-opacity=255 - -# Text default color (integer) -#freetype-color=16777215 - -# Force bold (boolean) -#freetype-bold=0 - -# Background opacity (integer) -#freetype-background-opacity=0 - -# Background color (integer) -#freetype-background-color=0 - -# Outline opacity (integer) -#freetype-outline-opacity=255 - -# Outline color (integer) -#freetype-outline-color=0 - -# Outline thickness (integer) -#freetype-outline-thickness=4 - -# Shadow opacity (integer) -#freetype-shadow-opacity=128 - -# Shadow color (integer) -#freetype-shadow-color=0 - -# Shadow angle (float) -#freetype-shadow-angle=-45.000000 - -# Shadow distance (float) -#freetype-shadow-distance=0.060000 - -# Use YUVP renderer (boolean) -#freetype-yuvp=0 - -# Text direction (integer) -#freetype-text-direction=0 - -[stream_out_transcode] # Transcode stream output - -# Video encoder (string) -#sout-transcode-venc= - -# Destination video codec (string) -#sout-transcode-vcodec= - -# Video bitrate (integer) -#sout-transcode-vb=0 - -# Video scaling (float) -#sout-transcode-scale=0.000000 - -# Video frame-rate (string) -#sout-transcode-fps= - -# Deinterlace video (boolean) -#sout-transcode-deinterlace=0 - -# Deinterlace module (string) -#sout-transcode-deinterlace-module=deinterlace - -# Video width (integer) -#sout-transcode-width=0 - -# Video height (integer) -#sout-transcode-height=0 - -# Maximum video width (integer) -#sout-transcode-maxwidth=0 - -# Maximum video height (integer) -#sout-transcode-maxheight=0 - -# Video filter (string) -#sout-transcode-vfilter= - -# Audio encoder (string) -#sout-transcode-aenc= - -# Destination audio codec (string) -#sout-transcode-acodec= - -# Audio bitrate (integer) -#sout-transcode-ab=96 - -# Audio language (string) -#sout-transcode-alang= - -# Audio channels (integer) -#sout-transcode-channels=0 - -# Audio sample rate (integer) -#sout-transcode-samplerate=0 - -# Audio filter (string) -#sout-transcode-afilter= - -# Subtitle encoder (string) -#sout-transcode-senc= - -# Destination subtitle codec (string) -#sout-transcode-scodec= - -# Destination subtitle codec (boolean) -#sout-transcode-soverlay=0 - -# Overlays (string) -#sout-transcode-sfilter= - -# Number of threads (integer) -#sout-transcode-threads=0 - -# Picture pool size (integer) -#sout-transcode-pool-size=10 - -# High priority (boolean) -#sout-transcode-high-priority=0 - -[stats] # Writes statistic info about stream - -# Output file (string) -#sout-stats-output= - -# Prefix to show on output line (string) -#sout-stats-prefix=stats - -[stream_out_standard] # Standard stream output - -# Output access method (string) -#sout-standard-access= - -# Output muxer (string) -#sout-standard-mux= - -# Output destination (string) -#sout-standard-dst= - -# Address to bind to (helper setting for dst) (string) -#sout-standard-bind= - -# Filename for stream (helper setting for dst) (string) -#sout-standard-path= - -# SAP announcing (boolean) -#sout-standard-sap=0 - -# Session name (string) -#sout-standard-name= - -# Session description (string) -#sout-standard-description= - -# Session URL (string) -#sout-standard-url= - -# Session email (string) -#sout-standard-email= - -[smem] # Stream output to memory buffer - -# Time Synchronized output (boolean) -#sout-smem-time-sync=1 - -[setid] # Change the id of an elementary stream - -# Elementary Stream ID (integer) -#sout-setid-id=0 - -# New ES ID (integer) -#sout-setid-new-id=0 - -# Elementary Stream ID (integer) -#sout-setlang-id=0 - -# Language (string) -#sout-setlang-lang=eng - -[stream_out_rtp] # RTP stream output - -# Destination (string) -#sout-rtp-dst= - -# SDP (string) -#sout-rtp-sdp= - -# Muxer (string) -#sout-rtp-mux= - -# SAP announcing (boolean) -#sout-rtp-sap=0 - -# Session name (string) -#sout-rtp-name= - -# Session category (string) -#sout-rtp-cat= - -# Session description (string) -#sout-rtp-description= - -# Session URL (string) -#sout-rtp-url= - -# Session email (string) -#sout-rtp-email= - -# Transport protocol (string) -#sout-rtp-proto=udp - -# Port (integer) -#sout-rtp-port=5004 - -# Audio port (integer) -#sout-rtp-port-audio=0 - -# Video port (integer) -#sout-rtp-port-video=0 - -# Hop limit (TTL) (integer) -#sout-rtp-ttl=-1 - -# RTP/RTCP multiplexing (boolean) -#sout-rtp-rtcp-mux=0 - -# Caching value (ms) (integer) -#sout-rtp-caching=300 - -# SRTP key (hexadecimal) (string) -#sout-rtp-key= - -# SRTP salt (hexadecimal) (string) -#sout-rtp-salt= - -# MP4A LATM (boolean) -#sout-rtp-mp4a-latm=0 - -# RTSP session timeout (s) (integer) -#rtsp-timeout=60 - -# Username (string) -#sout-rtsp-user= - -# Password (string) -#sout-rtsp-pwd= - -[record] # Record stream output - -# Destination prefix (string) -#sout-record-dst-prefix= - -[mosaic_bridge] # Mosaic bridge stream output - -# ID (string) -#sout-mosaic-bridge-id=Id - -# Video width (integer) -#sout-mosaic-bridge-width=0 - -# Video height (integer) -#sout-mosaic-bridge-height=0 - -# Sample aspect ratio (string) -#sout-mosaic-bridge-sar=1:1 - -# Image chroma (string) -#sout-mosaic-bridge-chroma= - -# Video filter (string) -#sout-mosaic-bridge-vfilter= - -# Transparency (integer) -#sout-mosaic-bridge-alpha=255 - -# X offset (integer) -#sout-mosaic-bridge-x=-1 - -# Y offset (integer) -#sout-mosaic-bridge-y=-1 - -[es] # Elementary stream output - -# Output access method (string) -#sout-es-access= - -# Output muxer (string) -#sout-es-mux= - -# Output URL (string) -#sout-es-dst= - -# Audio output access method (string) -#sout-es-access-audio= - -# Audio output muxer (string) -#sout-es-mux-audio= - -# Audio output URL (string) -#sout-es-dst-audio= - -# Video output access method (string) -#sout-es-access-video= - -# Video output muxer (string) -#sout-es-mux-video= - -# Video output URL (string) -#sout-es-dst-video= - -[display] # Display stream output - -# Enable audio (boolean) -#sout-display-audio=1 - -# Enable video (boolean) -#sout-display-video=1 - -# Delay (ms) (integer) -#sout-display-delay=100 - -[delay] # Delay a stream - -# Elementary Stream ID (integer) -#sout-delay-id=0 - -# Delay of the ES (ms) (integer) -#sout-delay-delay=0 - -[stream_out_chromecast] # Chromecast stream output - -# ? (string) -#sout-chromecast-ip= - -# ? (integer) -#sout-chromecast-port=8009 - -# ? (boolean) -#sout-chromecast-video=1 - -# HTTP port (integer) -#sout-chromecast-http-port=8010 - -# Performance warning (integer) -#sout-chromecast-show-perf-warning=1 - -# Enable Audio passthrough (boolean) -#sout-chromecast-audio-passthrough=0 - -# Conversion quality (integer) -#sout-chromecast-conversion-quality=1 - -[stream_out_chromaprint] # Chromaprint stream output - -# Duration of the fingerprinting (integer) -#duration=90 - -[bridge] # Bridge stream output - -# ID (integer) -#sout-bridge-out-id=0 - -# Destination bridge-in name (string) -#sout-bridge-out-in-name=default - -# Delay (integer) -#sout-bridge-in-delay=0 - -# ID Offset (integer) -#sout-bridge-in-id-offset=8192 - -# Name of current instance (string) -#sout-bridge-in-name=default - -# Fallback to placeholder stream when out of data (boolean) -#sout-bridge-in-placeholder=0 - -# Placeholder delay (integer) -#sout-bridge-in-placeholder-delay=200 - -# Wait for I frame before toggling placeholder (boolean) -#sout-bridge-in-placeholder-switch-on-iframe=1 - -[prefetch] # Stream prefetch filter - -# Buffer size (integer) -#prefetch-buffer-size=16384 - -# Read size (integer) -#prefetch-read-size=16777216 - -# Seek threshold (integer) -#prefetch-seek-threshold=16384 - -[subsdelay] # Subtitle delay - -# Delay calculation mode (integer) -#subsdelay-mode=1 - -# Calculation factor (float) -#subsdelay-factor=2.000000 - -# Maximum overlapping subtitles (integer) -#subsdelay-overlap=3 - -# Minimum alpha value (integer) -#subsdelay-min-alpha=70 - -# Interval between two disappearances (integer) -#subsdelay-min-stops=1000 - -# Interval between appearance and disappearance (integer) -#subsdelay-min-start-stop=1000 - -# Interval between disappearance and appearance (integer) -#subsdelay-min-stop-start=1000 - -[rss] # RSS and Atom feed display - -# Feed URLs (string) -#rss-urls= - -# X offset (integer) -#rss-x=0 - -# Y offset (integer) -#rss-y=0 - -# Text position (integer) -#rss-position=-1 - -# Opacity (integer) -#rss-opacity=255 - -# Color (integer) -#rss-color=16777215 - -# Font size, pixels (integer) -#rss-size=0 - -# Speed of feeds (integer) -#rss-speed=100000 - -# Max length (integer) -#rss-length=60 - -# Refresh time (integer) -#rss-ttl=1800 - -# Feed images (boolean) -#rss-images=1 - -# Title display mode (integer) -#rss-title=-1 - -[remoteosd] # Remote-OSD over VNC - -# VNC Host (string) -#rmtosd-host=myvdr - -# VNC Port (integer) -#rmtosd-port=20001 - -# VNC Password (string) -#rmtosd-password= - -# VNC poll interval (integer) -#rmtosd-update=1000 - -# VNC polling (boolean) -#rmtosd-vnc-polling=0 - -# Mouse events (boolean) -#rmtosd-mouse-events=0 - -# Key events (boolean) -#rmtosd-key-events=0 - -# Alpha transparency value (default 255) (integer) -#rmtosd-alpha=255 - -[mosaic] # Mosaic video sub source - -# Transparency (integer) -#mosaic-alpha=255 - -# Height (integer) -#mosaic-height=100 - -# Width (integer) -#mosaic-width=100 - -# Mosaic alignment (integer) -#mosaic-align=5 - -# Top left corner X coordinate (integer) -#mosaic-xoffset=0 - -# Top left corner Y coordinate (integer) -#mosaic-yoffset=0 - -# Border width (integer) -#mosaic-borderw=0 - -# Border height (integer) -#mosaic-borderh=0 - -# Positioning method (integer) -#mosaic-position=0 - -# Number of rows (integer) -#mosaic-rows=2 - -# Number of columns (integer) -#mosaic-cols=2 - -# Keep aspect ratio (boolean) -#mosaic-keep-aspect-ratio=0 - -# Keep original size (boolean) -#mosaic-keep-picture=0 - -# Elements order (string) -#mosaic-order= - -# Offsets in order (string) -#mosaic-offsets= - -# Delay (integer) -#mosaic-delay=0 - -[marq] # Marquee display - -# Text (string) -#marq-marquee=VLC - -# Text file (string) -#marq-file= - -# X offset (integer) -#marq-x=0 - -# Y offset (integer) -#marq-y=0 - -# Marquee position (integer) -#marq-position=-1 - -# Opacity (integer) -#marq-opacity=255 - -# Color (integer) -#marq-color=16777215 - -# Font size, pixels (integer) -#marq-size=0 - -# Timeout (integer) -#marq-timeout=0 - -# Refresh period in ms (integer) -#marq-refresh=1000 - -[logo] # Logo sub source - -# Logo filenames (string) -#logo-file= - -# X coordinate (integer) -#logo-x=-1 - -# Y coordinate (integer) -#logo-y=-1 - -# Logo individual image time in ms (integer) -#logo-delay=1000 - -# Logo animation # of loops (integer) -#logo-repeat=-1 - -# Opacity of the logo (integer) -#logo-opacity=255 - -# Logo position (integer) -#logo-position=-1 - -[dynamicoverlay] # Dynamic video overlay - -# Input FIFO (string) -#overlay-input= - -# Output FIFO (string) -#overlay-output= - -[audiobargraph_v] # Audio Bar Graph Video sub source - -# X coordinate (integer) -#audiobargraph_v-x=0 - -# Y coordinate (integer) -#audiobargraph_v-y=0 - -# Transparency of the bargraph (integer) -#audiobargraph_v-transparency=255 - -# Bargraph position (integer) -#audiobargraph_v-position=-1 - -# Bar width in pixel (integer) -#audiobargraph_v-barWidth=10 - -# Bar Height in pixel (integer) -#audiobargraph_v-barHeight=400 - -[upnp] # Universal Plug'n'Play - -# SAT>IP channel list (string) -#satip-channelist=auto - -# Custom SAT>IP channel list URL (string) -#satip-channellist-url= - -[sap] # Network streams (SAP) - -# SAP multicast address (string) -#sap-addr= - -# SAP timeout (seconds) (integer) -#sap-timeout=1800 - -# Try to parse the announce (boolean) -#sap-parse=1 - -# SAP Strict mode (boolean) -#sap-strict=0 - -[podcast] # Podcasts - -# Podcast URLs list (string) -#podcast-urls= - -[mpegvideo] # MPEG-I/II video packetizer - -# Sync on Intra Frame (boolean) -#packetizer-mpegvideo-sync-iframe=0 - -[notify] # LibNotify Notification Plugin - -# Timeout (ms) (integer) -#notify-timeout=4000 - -[mux_ts] # TS muxer (libdvbpsi) - -# Digital TV Standard (string) -#sout-ts-standard=dvb - -# Video PID (integer) -#sout-ts-pid-video=100 - -# Audio PID (integer) -#sout-ts-pid-audio=200 - -# SPU PID (integer) -#sout-ts-pid-spu=300 - -# PMT PID (integer) -#sout-ts-pid-pmt=32 - -# TS ID (integer) -#sout-ts-tsid=0 - -# NET ID (integer) -#sout-ts-netid=0 - -# PMT Program numbers (string) -#sout-ts-program-pmt= - -# Set PID to ID of ES (boolean) -#sout-ts-es-id-pid=0 - -# Mux PMT (requires --sout-ts-es-id-pid) (string) -#sout-ts-muxpmt= - -# SDT Descriptors (requires --sout-ts-es-id-pid) (string) -#sout-ts-sdtdesc= - -# Data alignment (boolean) -#sout-ts-alignment=1 - -# Shaping delay (ms) (integer) -#sout-ts-shaping=200 - -# Use keyframes (boolean) -#sout-ts-use-key-frames=0 - -# PCR interval (ms) (integer) -#sout-ts-pcr=70 - -# Minimum B (deprecated) (integer) -#sout-ts-bmin=0 - -# Maximum B (deprecated) (integer) -#sout-ts-bmax=0 - -# DTS delay (ms) (integer) -#sout-ts-dts-delay=400 - -# Crypt audio (boolean) -#sout-ts-crypt-audio=1 - -# Crypt video (boolean) -#sout-ts-crypt-video=1 - -# CSA Key (string) -#sout-ts-csa-ck= - -# Second CSA Key (string) -#sout-ts-csa2-ck= - -# CSA Key in use (string) -#sout-ts-csa-use=1 - -# Packet size in bytes to encrypt (integer) -#sout-ts-csa-pkt=188 - -[ps] # PS muxer - -# DTS delay (ms) (integer) -#sout-ps-dts-delay=200 - -# PES maximum size (integer) -#sout-ps-pes-max-size=65500 - -[mux_ogg] # Ogg/OGM muxer - -# Index interval (integer) -#sout-ogg-indexintvl=1000 - -# Index size ratio (float) -#sout-ogg-indexratio=1.000000 - -[mp4] # MP4/MOV muxer - -# Create "Fast Start" files (boolean) -#sout-mp4-faststart=1 - -[avi] # AVI muxer - -# Artist (string) -#sout-avi-artist= - -# Date (string) -#sout-avi-date= - -# Genre (string) -#sout-avi-genre= - -# Copyright (string) -#sout-avi-copyright= - -# Comment (string) -#sout-avi-comment= - -# Name (string) -#sout-avi-name= - -# Subject (string) -#sout-avi-subject= - -# Encoder (string) -#sout-avi-encoder=VLC Media Player - 3.0.18 Vetinari - -# Keywords (string) -#sout-avi-keywords= - -[asf] # ASF muxer - -# Title (string) -#sout-asf-title= - -# Author (string) -#sout-asf-author= - -# Copyright (string) -#sout-asf-copyright= - -# Comment (string) -#sout-asf-comment= - -# Rating (string) -#sout-asf-rating= - -# Packet Size (integer) -#sout-asf-packet-size=4096 - -# Bitrate override (integer) -#sout-asf-bitrate-override=0 - -[rtsp] # Legacy RTSP VoD server - -# MUX for RAW RTSP transport (string) -#rtsp-raw-mux=ts - -# Maximum number of connections (integer) -#rtsp-throttle-users=0 - -# Sets the timeout option in the RTSP session string (integer) -#rtsp-session-timeout=5 - -[logger] # File logging - -[gnutls] # GNU TLS transport layer security - -# Use system trust database (boolean) -#gnutls-system-trust=1 - -# Trust directory (string) -#gnutls-dir-trust= - -# TLS cipher priorities (string) -#gnutls-priorities=NORMAL - -[audioscrobbler] # Submission of played songs to last.fm - -# Username (string) -#lastfm-username= - -# Password (string) -#lastfm-password= - -# Scrobbler URL (string) -#scrobbler-url=post.audioscrobbler.com - -[folder] # Folder meta data - -# Album art filename (string) -#album-art-filename= - -[lua] # Lua interpreter - -# Lua interface (string) -#lua-intf=dummy - -# Lua interface configuration (string) -#lua-config= - -# Password (string) -#http-password= - -# Source directory (string) -#http-src= - -# Directory index (boolean) -#http-index=0 - -# TCP command input (string) -#rc-host= - -# CLI input (string) -#cli-host= - -# Host (string) -#telnet-host=localhost - -# Port (integer) -#telnet-port=4212 - -# Password (string) -#telnet-password= - -[syslog] # System logger (syslog) - -# System log (syslog) (boolean) -#syslog=0 - -# Debug messages (boolean) -#syslog-debug=0 - -# Identity (string) -#syslog-ident=vlc - -# Facility (string) -#syslog-facility=user - -[file] # File logger - -# Log to file (boolean) -#file-logging=0 - -# Log filename (string) -#logfile= - -# Log format (string) -#logmode=text - -# Verbosity (integer) -#log-verbose=-1 - -[console] # Console logger - -[file] # Secrets are stored on a file without any encryption - -# ? (string) -#keystore-file= - -[skins2] # Skinnable Interface - -# Skin to use (string) -#skins2-last= - -# Config of last used skin (string) -#skins2-config= - -# Enable transparency effects (boolean) -#skins2-transparency=0 - -# Use a skinned playlist (boolean) -#skinned-playlist=1 - -# Display video in a skinned window if any (boolean) -#skinned-video=1 - -[qt] # Qt interface - -# Start in minimal view (without menus) (boolean) -#qt-minimal-view=0 - -# Systray icon (boolean) -#qt-system-tray=1 - -# Show notification popup on track change (integer) -#qt-notification=1 - -# Start VLC with only a systray icon (boolean) -#qt-start-minimized=0 - -# Pause the video playback when minimized (boolean) -#qt-pause-minimized=0 - -# Windows opacity between 0.1 and 1 (float) -#qt-opacity=1.000000 - -# Fullscreen controller opacity between 0.1 and 1 (float) -#qt-fs-opacity=0.800000 - -# Resize interface to the native video size (boolean) -#qt-video-autoresize=1 - -# Show playing item name in window title (boolean) -#qt-name-in-title=1 - -# Show a controller in fullscreen mode (boolean) -#qt-fs-controller=1 - -# Save the recently played items in the menu (boolean) -#qt-recentplay=1 - -# List of words separated by | to filter (string) -#qt-recentplay-filter= - -# Continue playback? (integer) -#qt-continue=1 - -# Embed the file browser in open dialog (boolean) -#qt-embedded-open=0 - -# Show advanced preferences over simple ones (boolean) -#qt-advanced-pref=0 - -# Show unimportant error and warnings dialogs (boolean) -#qt-error-dialogs=1 - -# Define the colors of the volume slider (string) -#qt-slider-colours=153;210;153;20;210;20;255;199;15;245;39;29 - -# Ask for network policy at start (boolean) -qt-privacy-ask=0 - -# Define which screen fullscreen goes (integer) -#qt-fullscreen-screennumber=-1 - -# Load extensions on startup (boolean) -#qt-autoload-extensions=1 - -# Display background cone or art (boolean) -#qt-bgcone=1 - -# Expanding background cone or art (boolean) -#qt-bgcone-expands=0 - -# Allow automatic icon changes (boolean) -#qt-icon-change=1 - -# Maximum Volume displayed (integer) -#qt-max-volume=125 - -# Fullscreen controller mouse sensitivity (integer) -#qt-fs-sensitivity=3 - -# When to raise the interface (integer) -#qt-auto-raise=1 - -[ncurses] # Ncurses interface - -# Filebrowser starting point (string) -#browse-dir= - -[vc1] # VC1 video demuxer - -# Frames per Second (float) -#vc1-fps=25.000000 - -[ts] # MPEG Transport Stream demuxer - -# Digital TV Standard (string) -#ts-standard=auto - -# Extra PMT (string) -#ts-extra-pmt= - -# Trust in-stream PCR (boolean) -#ts-trust-pcr=1 - -# Set id of ES to PID (boolean) -#ts-es-id-pid=1 - -# CSA Key (string) -#ts-csa-ck= - -# Second CSA Key (string) -#ts-csa2-ck= - -# Packet size in bytes to decrypt (integer) -#ts-csa-pkt=188 - -# Separate sub-streams (boolean) -#ts-split-es=1 - -# Seek based on percent not time (boolean) -#ts-seek-percent=0 - -# Check packets continuity counter (boolean) -#ts-cc-check=1 - -# Only create ES on program sending data (boolean) -#ts-pmtfix-waitdata=1 - -# Try to generate PAT/PMT if missing (boolean) -#ts-patfix=1 - -# Try to fix too early PCR (or late DTS) (boolean) -#ts-pcr-offsetfix=1 - -[subtitle] # Text subtitle parser - -# Frames per Second (float) -#sub-fps=0.000000 - -# Subtitle delay (integer) -#sub-delay=0 - -# Subtitle format (string) -#sub-type=auto - -# Subtitle description (string) -#sub-description= - -[rawvid] # Raw video demuxer - -# Frames per Second (string) -#rawvid-fps= - -# Width (integer) -#rawvid-width=0 - -# Height (integer) -#rawvid-height=0 - -# Force chroma (Use carefully) (string) -#rawvid-chroma= - -# Aspect ratio (string) -#rawvid-aspect-ratio= - -[rawdv] # DV (Digital Video) demuxer - -# Hurry up (boolean) -#rawdv-hurry-up=0 - -[rawaud] # Raw audio demuxer - -# Audio channels (integer) -#rawaud-channels=2 - -# Audio samplerate (Hz) (integer) -#rawaud-samplerate=48000 - -# FOURCC code of raw input format (string) -#rawaud-fourcc=s16l - -# Forces the audio language (string) -#rawaud-lang=eng - -[ps] # MPEG-PS demuxer - -# Trust MPEG timestamps (boolean) -#ps-trust-timestamps=1 - -[playlist] # Playlist - -# Skip ads (boolean) -#playlist-skip-ads=1 - -# Show shoutcast adult content (boolean) -#shoutcast-show-adult=0 - -[mp4] # MP4 stream demuxer - -# M4A audio only (boolean) -#mp4-m4a-audioonly=0 - -[mod] # MOD demuxer (libmodplug) - -# Noise reduction (boolean) -#mod-noisereduction=1 - -# Reverb (boolean) -#mod-reverb=0 - -# Reverberation level (integer) -#mod-reverb-level=0 - -# Reverberation delay (integer) -#mod-reverb-delay=40 - -# Mega bass (boolean) -#mod-megabass=0 - -# Mega bass level (integer) -#mod-megabass-level=0 - -# Mega bass cutoff (integer) -#mod-megabass-range=10 - -# Surround (boolean) -#mod-surround=0 - -# Surround level (integer) -#mod-surround-level=0 - -# Surround delay (ms) (integer) -#mod-surround-delay=5 - -[mkv] # Matroska stream demuxer - -# Respect ordered chapters (boolean) -#mkv-use-ordered-chapters=1 - -# Chapter codecs (boolean) -#mkv-use-chapter-codec=1 - -# Preload MKV files in the same directory (boolean) -#mkv-preload-local-dir=1 - -# Seek based on percent not time (boolean) -#mkv-seek-percent=0 - -# Dummy Elements (boolean) -#mkv-use-dummy=0 - -# Preload clusters (boolean) -#mkv-preload-clusters=0 - -[mjpeg] # M-JPEG camera demuxer - -# Frames per Second (float) -#mjpeg-fps=0.000000 - -[image] # Image demuxer - -# ES ID (integer) -#image-id=-1 - -# Group (integer) -#image-group=0 - -# Decode (boolean) -#image-decode=1 - -# Forced chroma (string) -#image-chroma= - -# Duration in seconds (float) -#image-duration=10.000000 - -# Frame rate (string) -#image-fps=10/1 - -# Real-time (boolean) -#image-realtime=0 - -[h26x] # H264 video demuxer - -# Frames per Second (float) -#h264-fps=0.000000 - -# Frames per Second (float) -#hevc-fps=0.000000 - -[es] # MPEG-I/II/4 / A52 / DTS / MLP audio - -# Frames per Second (float) -#es-fps=25.000000 - -[diracsys] # Dirac video demuxer - -# Value to adjust dts by (integer) -#dirac-dts-offset=0 - -[demuxdump] # File dumper - -# Dump module (string) -#demuxdump-access=file - -# Dump filename (string) -#demuxdump-file=stream-demux.dump - -# Append to existing file (boolean) -#demuxdump-append=0 - -[avi] # AVI demuxer - -# Force interleaved method (boolean) -#avi-interleaved=0 - -# Force index creation (integer) -#avi-index=0 - -[avformat] # Avformat demuxer - -# Format name (string) -#avformat-format= - -# Advanced options (string) -#avformat-options= - -# Avformat mux (string) -#sout-avformat-mux= - -# Advanced options (string) -#sout-avformat-options= - -# Reset timestamps (boolean) -#sout-avformat-reset-ts=0 - -[adaptive] # Unified adaptive streaming for DASH/HLS - -# Adaptive Logic (string) -#adaptive-logic= - -# Maximum device width (integer) -#adaptive-maxwidth=0 - -# Maximum device height (integer) -#adaptive-maxheight=0 - -# Fixed Bandwidth in KiB/s (integer) -#adaptive-bw=250 - -# Use regular HTTP modules (boolean) -#adaptive-use-access=0 - -# Live Playback delay (ms) (integer) -#adaptive-livedelay=15000 - -# Max buffering (ms) (integer) -#adaptive-maxbuffer=30000 - -# Low latency (integer) -#adaptive-lowlatency=-1 - -[oldrc] # Remote control interface - -# Show stream position (boolean) -#rc-show-pos=0 - -# Fake TTY (boolean) -#rc-fake-tty=0 - -# UNIX socket command input (string) -#rc-unix= - -# TCP command input (string) -#rc-host= - -[netsync] # Network synchronization - -# Network master clock (boolean) -#netsync-master=0 - -# Master server IP address (string) -#netsync-master-ip= - -# UDP timeout (in ms) (integer) -#netsync-timeout=500 - -[motion] # motion control interface - -[lirc] # Infrared remote control interface - -# Change the lirc configuration file (string) -#lirc-file= - -[gestures] # Mouse gestures control interface - -# Motion threshold (10-100) (integer) -#gestures-threshold=30 - -# Trigger button (string) -#gestures-button=left - -[fluidsynth] # FluidSynth MIDI synthesizer - -# SoundFont file (string) -#soundfont= - -# Chorus (boolean) -#synth-chorus=1 - -# Synthesis gain (float) -#synth-gain=0.500000 - -# Polyphony (integer) -#synth-polyphony=256 - -# Reverb (boolean) -#synth-reverb=1 - -# Sample rate (integer) -#synth-sample-rate=44100 - -[zvbi] # VBI and Teletext decoder - -# Teletext page (integer) -#vbi-page=100 - -# Opacity (boolean) -#vbi-opaque=0 - -# Teletext alignment (integer) -#vbi-position=8 - -# Teletext text subtitles (boolean) -#vbi-text=0 - -# Presentation Level (integer) -#vbi-level=3 - -[x264] # H.264/MPEG-4 Part 10/AVC encoder (x264) - -# Maximum GOP size (integer) -#sout-x264-keyint=250 - -# Minimum GOP size (integer) -#sout-x264-min-keyint=25 - -# Use recovery points to close GOPs (boolean) -#sout-x264-opengop=0 - -# Enable compatibility hacks for Blu-ray support (boolean) -#sout-x264-bluray-compat=0 - -# Extra I-frames aggressivity (integer) -#sout-x264-scenecut=40 - -# B-frames between I and P (integer) -#sout-x264-bframes=3 - -# Adaptive B-frame decision (integer) -#sout-x264-b-adapt=1 - -# Influence (bias) B-frames usage (integer) -#sout-x264-b-bias=0 - -# Keep some B-frames as references (string) -#sout-x264-bpyramid=normal - -# CABAC (boolean) -#sout-x264-cabac=1 - -# Use fullrange instead of TV colorrange (boolean) -#sout-x264-fullrange=0 - -# Number of reference frames (integer) -#sout-x264-ref=3 - -# Skip loop filter (boolean) -#sout-x264-nf=0 - -# Loop filter AlphaC0 and Beta parameters alpha:beta (string) -#sout-x264-deblock=0:0 - -# Strength of psychovisual optimization, default is "1.0:0.0" (string) -#sout-x264-psy-rd=1.0:0.0 - -# Use Psy-optimizations (boolean) -#sout-x264-psy=1 - -# H.264 level (string) -#sout-x264-level=0 - -# H.264 profile (string) -#sout-x264-profile=high - -# Interlaced mode (boolean) -#sout-x264-interlaced=0 - -# Frame packing (integer) -#sout-x264-frame-packing=-1 - -# Force number of slices per frame (integer) -#sout-x264-slices=0 - -# Limit the size of each slice in bytes (integer) -#sout-x264-slice-max-size=0 - -# Limit the size of each slice in macroblocks (integer) -#sout-x264-slice-max-mbs=0 - -# HRD-timing information (string) -#sout-x264-hrd=none - -# Set QP (integer) -#sout-x264-qp=-1 - -# Quality-based VBR (integer) -#sout-x264-crf=23 - -# Min QP (integer) -#sout-x264-qpmin=10 - -# Max QP (integer) -#sout-x264-qpmax=51 - -# Max QP step (integer) -#sout-x264-qpstep=4 - -# Average bitrate tolerance (float) -#sout-x264-ratetol=1.000000 - -# Max local bitrate (integer) -#sout-x264-vbv-maxrate=0 - -# VBV buffer (integer) -#sout-x264-vbv-bufsize=0 - -# Initial VBV buffer occupancy (float) -#sout-x264-vbv-init=0.900000 - -# QP factor between I and P (float) -#sout-x264-ipratio=1.400000 - -# QP factor between P and B (float) -#sout-x264-pbratio=1.300000 - -# QP difference between chroma and luma (integer) -#sout-x264-chroma-qp-offset=0 - -# Multipass ratecontrol (integer) -#sout-x264-pass=0 - -# QP curve compression (float) -#sout-x264-qcomp=0.600000 - -# Reduce fluctuations in QP (float) -#sout-x264-cplxblur=20.000000 - -# Reduce fluctuations in QP (float) -#sout-x264-qblur=0.500000 - -# How AQ distributes bits (integer) -#sout-x264-aq-mode=1 - -# Strength of AQ (float) -#sout-x264-aq-strength=1.000000 - -# Partitions to consider (string) -#sout-x264-partitions=normal - -# Direct MV prediction mode (string) -#sout-x264-direct=spatial - -# Direct prediction size (integer) -#sout-x264-direct-8x8=1 - -# Weighted prediction for B-frames (boolean) -#sout-x264-weightb=1 - -# Weighted prediction for P-frames (integer) -#sout-x264-weightp=2 - -# Integer pixel motion estimation method (string) -#sout-x264-me=hex - -# Maximum motion vector search range (integer) -#sout-x264-merange=16 - -# Maximum motion vector length (integer) -#sout-x264-mvrange=-1 - -# Minimum buffer space between threads (integer) -#sout-x264-mvrange-thread=-1 - -# Subpixel motion estimation and partition decision quality (integer) -#sout-x264-subme=7 - -# Decide references on a per partition basis (boolean) -#sout-x264-mixed-refs=1 - -# Chroma in motion estimation (boolean) -#sout-x264-chroma-me=1 - -# Adaptive spatial transform size (boolean) -#sout-x264-8x8dct=1 - -# Trellis RD quantization (integer) -#sout-x264-trellis=1 - -# Framecount to use on frametype lookahead (integer) -#sout-x264-lookahead=40 - -# Use Periodic Intra Refresh (boolean) -#sout-x264-intra-refresh=0 - -# Use mb-tree ratecontrol (boolean) -#sout-x264-mbtree=1 - -# Early SKIP detection on P-frames (boolean) -#sout-x264-fast-pskip=1 - -# Coefficient thresholding on P-frames (boolean) -#sout-x264-dct-decimate=1 - -# Noise reduction (integer) -#sout-x264-nr=0 - -# Inter luma quantization deadzone (integer) -#sout-x264-deadzone-inter=21 - -# Intra luma quantization deadzone (integer) -#sout-x264-deadzone-intra=11 - -# Non-deterministic optimizations when threaded (boolean) -#sout-x264-non-deterministic=0 - -# CPU optimizations (boolean) -#sout-x264-asm=1 - -# PSNR computation (boolean) -#sout-x264-psnr=0 - -# SSIM computation (boolean) -#sout-x264-ssim=0 - -# Quiet mode (boolean) -#sout-x264-quiet=0 - -# SPS and PPS id numbers (integer) -#sout-x264-sps-id=0 - -# Access unit delimiters (boolean) -#sout-x264-aud=0 - -# Statistics (boolean) -#sout-x264-verbose=0 - -# Filename for 2 pass stats file (string) -#sout-x264-stats=x264_2pass.log - -# Default preset setting used (string) -#sout-x264-preset= - -# Default tune setting used (string) -#sout-x264-tune= - -# x264 advanced options (string) -#sout-x264-options= - -[x26410b] # H.264/MPEG-4 Part 10/AVC encoder (x264 10-bit) - -# Maximum GOP size (integer) -#sout-x26410b-keyint=250 - -# Minimum GOP size (integer) -#sout-x26410b-min-keyint=25 - -# Use recovery points to close GOPs (boolean) -#sout-x26410b-opengop=0 - -# Enable compatibility hacks for Blu-ray support (boolean) -#sout-x26410b-bluray-compat=0 - -# Extra I-frames aggressivity (integer) -#sout-x26410b-scenecut=40 - -# B-frames between I and P (integer) -#sout-x26410b-bframes=3 - -# Adaptive B-frame decision (integer) -#sout-x26410b-b-adapt=1 - -# Influence (bias) B-frames usage (integer) -#sout-x26410b-b-bias=0 - -# Keep some B-frames as references (string) -#sout-x26410b-bpyramid=normal - -# CABAC (boolean) -#sout-x26410b-cabac=1 - -# Use fullrange instead of TV colorrange (boolean) -#sout-x26410b-fullrange=0 - -# Number of reference frames (integer) -#sout-x26410b-ref=3 - -# Skip loop filter (boolean) -#sout-x26410b-nf=0 - -# Loop filter AlphaC0 and Beta parameters alpha:beta (string) -#sout-x26410b-deblock=0:0 - -# Strength of psychovisual optimization, default is "1.0:0.0" (string) -#sout-x26410b-psy-rd=1.0:0.0 - -# Use Psy-optimizations (boolean) -#sout-x26410b-psy=1 - -# H.264 level (string) -#sout-x26410b-level=0 - -# H.264 profile (string) -#sout-x26410b-profile=high - -# Interlaced mode (boolean) -#sout-x26410b-interlaced=0 - -# Frame packing (integer) -#sout-x26410b-frame-packing=-1 - -# Force number of slices per frame (integer) -#sout-x26410b-slices=0 - -# Limit the size of each slice in bytes (integer) -#sout-x26410b-slice-max-size=0 - -# Limit the size of each slice in macroblocks (integer) -#sout-x26410b-slice-max-mbs=0 - -# HRD-timing information (string) -#sout-x26410b-hrd=none - -# Set QP (integer) -#sout-x26410b-qp=-1 - -# Quality-based VBR (integer) -#sout-x26410b-crf=23 - -# Min QP (integer) -#sout-x26410b-qpmin=10 - -# Max QP (integer) -#sout-x26410b-qpmax=51 - -# Max QP step (integer) -#sout-x26410b-qpstep=4 - -# Average bitrate tolerance (float) -#sout-x26410b-ratetol=1.000000 - -# Max local bitrate (integer) -#sout-x26410b-vbv-maxrate=0 - -# VBV buffer (integer) -#sout-x26410b-vbv-bufsize=0 - -# Initial VBV buffer occupancy (float) -#sout-x26410b-vbv-init=0.900000 - -# QP factor between I and P (float) -#sout-x26410b-ipratio=1.400000 - -# QP factor between P and B (float) -#sout-x26410b-pbratio=1.300000 - -# QP difference between chroma and luma (integer) -#sout-x26410b-chroma-qp-offset=0 - -# Multipass ratecontrol (integer) -#sout-x26410b-pass=0 - -# QP curve compression (float) -#sout-x26410b-qcomp=0.600000 - -# Reduce fluctuations in QP (float) -#sout-x26410b-cplxblur=20.000000 - -# Reduce fluctuations in QP (float) -#sout-x26410b-qblur=0.500000 - -# How AQ distributes bits (integer) -#sout-x26410b-aq-mode=1 - -# Strength of AQ (float) -#sout-x26410b-aq-strength=1.000000 - -# Partitions to consider (string) -#sout-x26410b-partitions=normal - -# Direct MV prediction mode (string) -#sout-x26410b-direct=spatial - -# Direct prediction size (integer) -#sout-x26410b-direct-8x8=1 - -# Weighted prediction for B-frames (boolean) -#sout-x26410b-weightb=1 - -# Weighted prediction for P-frames (integer) -#sout-x26410b-weightp=2 - -# Integer pixel motion estimation method (string) -#sout-x26410b-me=hex - -# Maximum motion vector search range (integer) -#sout-x26410b-merange=16 - -# Maximum motion vector length (integer) -#sout-x26410b-mvrange=-1 - -# Minimum buffer space between threads (integer) -#sout-x26410b-mvrange-thread=-1 - -# Subpixel motion estimation and partition decision quality (integer) -#sout-x26410b-subme=7 - -# Decide references on a per partition basis (boolean) -#sout-x26410b-mixed-refs=1 - -# Chroma in motion estimation (boolean) -#sout-x26410b-chroma-me=1 - -# Adaptive spatial transform size (boolean) -#sout-x26410b-8x8dct=1 - -# Trellis RD quantization (integer) -#sout-x26410b-trellis=1 - -# Framecount to use on frametype lookahead (integer) -#sout-x26410b-lookahead=40 - -# Use Periodic Intra Refresh (boolean) -#sout-x26410b-intra-refresh=0 - -# Use mb-tree ratecontrol (boolean) -#sout-x26410b-mbtree=1 - -# Early SKIP detection on P-frames (boolean) -#sout-x26410b-fast-pskip=1 - -# Coefficient thresholding on P-frames (boolean) -#sout-x26410b-dct-decimate=1 - -# Noise reduction (integer) -#sout-x26410b-nr=0 - -# Inter luma quantization deadzone (integer) -#sout-x26410b-deadzone-inter=21 - -# Intra luma quantization deadzone (integer) -#sout-x26410b-deadzone-intra=11 - -# Non-deterministic optimizations when threaded (boolean) -#sout-x26410b-non-deterministic=0 - -# CPU optimizations (boolean) -#sout-x26410b-asm=1 - -# PSNR computation (boolean) -#sout-x26410b-psnr=0 - -# SSIM computation (boolean) -#sout-x26410b-ssim=0 - -# Quiet mode (boolean) -#sout-x26410b-quiet=0 - -# SPS and PPS id numbers (integer) -#sout-x26410b-sps-id=0 - -# Access unit delimiters (boolean) -#sout-x26410b-aud=0 - -# Statistics (boolean) -#sout-x26410b-verbose=0 - -# Filename for 2 pass stats file (string) -#sout-x26410b-stats=x264_2pass.log - -# Default preset setting used (string) -#sout-x26410b-preset= - -# Default tune setting used (string) -#sout-x26410b-tune= - -# x264 advanced options (string) -#sout-x26410b-options= - -[vpx] # WebM video decoder - -# Quality mode (integer) -#sout-vpx-quality-mode=1000000 - -[vorbis] # Vorbis audio decoder - -# Encoding quality (integer) -#sout-vorbis-quality=0 - -# Maximum encoding bitrate (integer) -#sout-vorbis-max-bitrate=0 - -# Minimum encoding bitrate (integer) -#sout-vorbis-min-bitrate=0 - -# CBR encoding (boolean) -#sout-vorbis-cbr=0 - -[twolame] # Libtwolame audio encoder - -# Encoding quality (float) -#sout-twolame-quality=0.000000 - -# Stereo mode (integer) -#sout-twolame-mode=0 - -# VBR mode (boolean) -#sout-twolame-vbr=0 - -# Psycho-acoustic model (integer) -#sout-twolame-psy=3 - -[ttml] # TTML subtitles decoder - -# Subtitle justification (integer) -#ttml-align=0 - -[theora] # Theora video decoder - -# Post processing quality (integer) -#theora-postproc=-1 - -# Encoding quality (integer) -#sout-theora-quality=2 - -[telx] # Teletext subtitles decoder - -# Override page (integer) -#telx-override-page=-1 - -# Ignore subtitle flag (boolean) -#telx-ignore-subtitle-flag=0 - -# Workaround for France (boolean) -#telx-french-workaround=0 - -[svgdec] # SVG video decoder - -# Image width (integer) -#svg-width=-1 - -# Image height (integer) -#svg-height=-1 - -# Scale factor (float) -#svg-scale=-1.000000 - -[svcdsub] # Philips OGT (SVCD subtitle) decoder - -[subsusf] # USF subtitles decoder - -# Formatted Subtitles (boolean) -#subsdec-formatted=1 - -[subsdec] # Text subtitle decoder - -# Subtitle justification (integer) -#subsdec-align=-1 - -# Subtitle text encoding (string) -#subsdec-encoding= - -# UTF-8 subtitle autodetection (boolean) -#subsdec-autodetect-utf8=1 - -[spudec] # DVD subtitles decoder - -# Disable DVD subtitle transparency (boolean) -#dvdsub-transparency=0 - -[speex] # Speex audio decoder - -# Mode (integer) -#sout-speex-mode=0 - -# Encoding complexity (integer) -#sout-speex-complexity=3 - -# CBR encoding (boolean) -#sout-speex-cbr=0 - -# Encoding quality (float) -#sout-speex-quality=8.000000 - -# Maximal bitrate (integer) -#sout-speex-max-bitrate=0 - -# Voice activity detection (boolean) -#sout-speex-vad=1 - -# Discontinuous Transmission (boolean) -#sout-speex-dtx=0 - -[schroedinger] # Dirac video decoder using libschroedinger - -# Rate control method (string) -#sout-schro-rate-control= - -# Constant quality factor (float) -#sout-schro-quality=-1.000000 - -# Noise Threshold (float) -#sout-schro-noise-threshold=-1.000000 - -# CBR bitrate (kbps) (integer) -#sout-schro-bitrate=-1 - -# Maximum bitrate (kbps) (integer) -#sout-schro-max-bitrate=-1 - -# Minimum bitrate (kbps) (integer) -#sout-schro-min-bitrate=-1 - -# GOP structure (string) -#sout-schro-gop-structure= - -# GOP length (integer) -#sout-schro-gop-length=-1 - -# Chroma format (string) -#sout-schro-chroma-fmt=420 - -# Picture coding mode (string) -#sout-schro-coding-mode=auto - -# Motion Vector precision (string) -#sout-schro-mv-precision= - -# Size of motion compensation blocks (string) -#sout-schro-motion-block-size= - -# Overlap of motion compensation blocks (string) -#sout-schro-motion-block-overlap= - -# Three component motion estimation (integer) -#sout-schro-me-combined=-1 - -# Enable hierarchical Motion Estimation (integer) -#sout-schro-enable-hierarchical-me=-1 - -# Number of levels of downsampling (integer) -#sout-schro-downsample-levels=-1 - -# Enable Global Motion Estimation (integer) -#sout-schro-enable-global-me=-1 - -# Enable Phase Correlation Estimation (integer) -#sout-schro-enable-phasecorr-me=-1 - -# Intra picture DWT filter (string) -#sout-schro-intra-wavelet= - -# Inter picture DWT filter (string) -#sout-schro-inter-wavelet= - -# Number of DWT iterations (integer) -#sout-schro-transform-depth=-1 - -# Enable multiple quantizers (integer) -#sout-schro-enable-multiquant=-1 - -# Size of code blocks in each subband (string) -#sout-schro-codeblock-size= - -# Prefilter (string) -#sout-schro-filtering= - -# Amount of prefiltering (float) -#sout-schro-filter-value=-1.000000 - -# Enable Scene Change Detection (integer) -#sout-schro-enable-scd=-1 - -# perceptual weighting method (string) -#sout-schro-perceptual-weighting= - -# perceptual distance (float) -#sout-schro-perceptual-distance=-1.000000 - -# Disable arithmetic coding (integer) -#sout-schro-enable-noarith=-1 - -# Horizontal slices per frame (integer) -#sout-schro-horiz-slices=-1 - -# Vertical slices per frame (integer) -#sout-schro-vert-slices=-1 - -# Force Profile (string) -#sout-schro-force-profile= - -[qsv] # Intel QuickSync Video encoder for MPEG4-Part10/MPEG2 (aka H.264/H.262) - -# Enable software mode (boolean) -#sout-qsv-software=0 - -# Codec Profile (string) -#sout-qsv-h264-profile=unspecified - -# Codec Level (string) -#sout-qsv-h264-level=unspecified - -# Codec Profile (string) -#sout-qsv-mpeg2-profile=unspecified - -# Codec Level (string) -#sout-qsv-mpeg2-level=unspecified - -# Group of Picture size (integer) -#sout-qsv-gop-size=32 - -# Group of Picture Reference Distance (integer) -#sout-qsv-gop-refdist=4 - -# IDR interval (integer) -#sout-qsv-idr-interval=0 - -# Target Usage (string) -#sout-qsv-target-usage=quality - -# Rate Control Method (string) -#sout-qsv-rc-method=vbr - -# Quantization parameter (integer) -#sout-qsv-qp=0 - -# Quantization parameter for I-frames (integer) -#sout-qsv-qpi=0 - -# Quantization parameter for P-frames (integer) -#sout-qsv-qpp=0 - -# Quantization parameter for B-frames (integer) -#sout-qsv-qpb=0 - -# Maximum Bitrate (integer) -#sout-qsv-bitrate-max=0 - -# Accuracy of RateControl (integer) -#sout-qsv-accuracy=0 - -# Convergence time of 'avbr' RateControl (integer) -#sout-qsv-convergence=0 - -# Number of slices per frame (integer) -#sout-qsv-num-slice=0 - -# Number of reference frames (integer) -#sout-qsv-num-ref-frame=0 - -# Number of parallel operations (integer) -#sout-qsv-async-depth=4 - -[libass] # Subtitle renderers using libass - -# Additional fonts directory (string) -#ssa-fontsdir= - -[kate] # Kate overlay decoder - -# Formatted Subtitles (boolean) -#kate-formatted=1 - -# Use Tiger for rendering (boolean) -#kate-use-tiger=1 - -# Rendering quality (float) -#kate-tiger-quality=1.000000 - -# Default font description (string) -#kate-tiger-default-font-desc= - -# Default font effect (integer) -#kate-tiger-default-font-effect=0 - -# Default font effect strength (float) -#kate-tiger-default-font-effect-strength=0.500000 - -# Default font color (integer) -#kate-tiger-default-font-color=16777215 - -# Default font alpha (integer) -#kate-tiger-default-font-alpha=255 - -# Default background color (integer) -#kate-tiger-default-background-color=16777215 - -# Default background alpha (integer) -#kate-tiger-default-background-alpha=0 - -[jpeg] # JPEG image decoder - -# Quality level (integer) -#sout-jpeg-quality=95 - -[dvbsub] # DVB subtitles decoder - -# Subpicture position (integer) -#dvbsub-position=8 - -# Decoding X coordinate (integer) -#dvbsub-x=-1 - -# Decoding Y coordinate (integer) -#dvbsub-y=-1 - -# Encoding X coordinate (integer) -#sout-dvbsub-x=-1 - -# Encoding Y coordinate (integer) -#sout-dvbsub-y=-1 - -[ddummy] # Dummy decoder - -# Save raw codec data (boolean) -#dummy-save-es=0 - -[dca] # DTS Coherent Acoustics audio decoder - -# DTS dynamic range compression (boolean) -#dts-dynrng=1 - -[dav1d] # Dav1d video decoder - -# Frames Threads (integer) -#dav1d-thread-frames=0 - -[cc] # Closed Captions decoder - -# Opacity (boolean) -#cc-opaque=1 - -[avcodec] # FFmpeg audio/video decoder - -# Direct rendering (boolean) -#avcodec-dr=1 - -# Show corrupted frames (boolean) -#avcodec-corrupted=1 - -# Error resilience (integer) -#avcodec-error-resilience=1 - -# Workaround bugs (integer) -#avcodec-workaround-bugs=1 - -# Hurry up (boolean) -#avcodec-hurry-up=1 - -# Skip frame (default=0) (integer) -#avcodec-skip-frame=0 - -# Skip idct (default=0) (integer) -#avcodec-skip-idct=0 - -# Allow speed tricks (boolean) -#avcodec-fast=0 - -# Skip the loop filter for H.264 decoding (integer) -#avcodec-skiploopfilter=0 - -# Debug mask (integer) -#avcodec-debug=0 - -# Codec name (string) -#avcodec-codec= - -# Hardware decoding (string) -#avcodec-hw=any - -# Threads (integer) -#avcodec-threads=0 - -# Advanced options (string) -#avcodec-options= - -# Codec name (string) -#sout-avcodec-codec= - -# Quality level (string) -#sout-avcodec-hq=rd - -# Ratio of key frames (integer) -#sout-avcodec-keyint=0 - -# Ratio of B frames (integer) -#sout-avcodec-bframes=0 - -# Hurry up (boolean) -#sout-avcodec-hurry-up=0 - -# Interlaced encoding (boolean) -#sout-avcodec-interlace=0 - -# Interlaced motion estimation (boolean) -#sout-avcodec-interlace-me=1 - -# Video bitrate tolerance (integer) -#sout-avcodec-vt=0 - -# Pre-motion estimation (boolean) -#sout-avcodec-pre-me=0 - -# Rate control buffer size (integer) -#sout-avcodec-rc-buffer-size=0 - -# Rate control buffer aggressiveness (float) -#sout-avcodec-rc-buffer-aggressivity=1.000000 - -# I quantization factor (float) -#sout-avcodec-i-quant-factor=0.000000 - -# Noise reduction (integer) -#sout-avcodec-noise-reduction=0 - -# MPEG4 quantization matrix (boolean) -#sout-avcodec-mpeg4-matrix=0 - -# Minimum video quantizer scale (integer) -#sout-avcodec-qmin=0 - -# Maximum video quantizer scale (integer) -#sout-avcodec-qmax=0 - -# Trellis quantization (boolean) -#sout-avcodec-trellis=0 - -# Fixed quantizer scale (float) -#sout-avcodec-qscale=3.000000 - -# Strict standard compliance (integer) -#sout-avcodec-strict=0 - -# Luminance masking (float) -#sout-avcodec-lumi-masking=0.000000 - -# Darkness masking (float) -#sout-avcodec-dark-masking=0.000000 - -# Motion masking (float) -#sout-avcodec-p-masking=0.000000 - -# Border masking (float) -#sout-avcodec-border-masking=0.000000 - -# Luminance elimination (integer) -#sout-avcodec-luma-elim-threshold=0 - -# Chrominance elimination (integer) -#sout-avcodec-chroma-elim-threshold=0 - -# Specify AAC audio profile to use (string) -#sout-avcodec-aac-profile=low - -# Advanced options (string) -#sout-avcodec-options= - -[a52] # ATSC A/52 (AC-3) audio decoder - -# A/52 dynamic range compression (boolean) -#a52-dynrng=1 - -[jack] # JACK audio output - -# Automatically connect to writable clients (boolean) -#jack-auto-connect=1 - -# Connect to clients matching (string) -#jack-connect-regex=system - -# JACK client name (string) -#jack-name= - -# Software gain (float) -#jack-gain=1.000000 - -[amem] # Audio memory output - -# Sample format (string) -#amem-format=S16N - -# Sample rate (integer) -#amem-rate=44100 - -# Channels count (integer) -#amem-channels=2 - -[alsa] # ALSA audio output - -# Audio output device (string) -#alsa-audio-device=default - -# Audio output channels (integer) -#alsa-audio-channels=6 - -# Software gain (float) -#alsa-gain=1.000000 - -[afile] # File audio output - -# Output file (string) -#audiofile-file=audiofile.wav - -# Output format (string) -#audiofile-format=s16 - -# Number of output channels (integer) -#audiofile-channels=0 - -# Add WAVE header (boolean) -#audiofile-wav=1 - -[stereo_widen] # Simple stereo widening effect - -# Delay time (float) -#stereowiden-delay=20.000000 - -# Feedback gain (float) -#stereowiden-feedback=0.300000 - -# Crossfeed (float) -#stereowiden-crossfeed=0.300000 - -# Dry mix (float) -#stereowiden-dry-mix=0.800000 - -[speex_resampler] # Speex resampler - -# Resampling quality (integer) -#speex-resampler-quality=4 - -[spatializer] # Audio Spatializer - -# Room size (float) -#spatializer-roomsize=0.850000 - -# Room width (float) -#spatializer-width=1.000000 - -# Wet (float) -#spatializer-wet=0.400000 - -# Dry (float) -#spatializer-dry=0.500000 - -# Damp (float) -#spatializer-damp=0.500000 - -[spatialaudio] # Ambisonics renderer and binauralizer - -# Headphones mode (binaural) (boolean) -#spatialaudio-headphones=0 - -# HRTF file for the binauralization (string) -#hrtf-file= - -[soxr] # soxr - -# Resampling quality (integer) -#soxr-resampler-quality=2 - -[scaletempo] # Audio tempo scaler synched with rate - -# Stride Length (integer) -#scaletempo-stride=30 - -# Overlap Length (float) -#scaletempo-overlap=0.200000 - -# Search Length (integer) -#scaletempo-search=14 - -[scaletempo_pitch] # Pitch Shifter - -# Stride Length (integer) -#scaletempo-stride=30 - -# Overlap Length (float) -#scaletempo-overlap=0.200000 - -# Search Length (integer) -#scaletempo-search=14 - -# Pitch Shift (float) -#pitch-shift=0.000000 - -[samplerate] # Secret Rabbit Code (libsamplerate) resampler - -# Sample rate converter type (integer) -#src-converter-type=2 - -[remap] # Audio channel remapper - -# Left (integer) -#aout-remap-channel-left=0 - -# Center (integer) -#aout-remap-channel-center=1 - -# Right (integer) -#aout-remap-channel-right=2 - -# Rear left (integer) -#aout-remap-channel-rearleft=3 - -# Rear center (integer) -#aout-remap-channel-rearcenter=4 - -# Rear right (integer) -#aout-remap-channel-rearright=5 - -# Side left (integer) -#aout-remap-channel-middleleft=6 - -# Side right (integer) -#aout-remap-channel-middleright=7 - -# Low-frequency effects (integer) -#aout-remap-channel-lfe=8 - -# Normalize channels (boolean) -#aout-remap-normalize=1 - -[param_eq] # Parametric Equalizer - -# Low freq (Hz) (float) -#param-eq-lowf=100.000000 - -# Low freq gain (dB) (float) -#param-eq-lowgain=0.000000 - -# High freq (Hz) (float) -#param-eq-highf=10000.000000 - -# High freq gain (dB) (float) -#param-eq-highgain=0.000000 - -# Freq 1 (Hz) (float) -#param-eq-f1=300.000000 - -# Freq 1 gain (dB) (float) -#param-eq-gain1=0.000000 - -# Freq 1 Q (float) -#param-eq-q1=3.000000 - -# Freq 2 (Hz) (float) -#param-eq-f2=1000.000000 - -# Freq 2 gain (dB) (float) -#param-eq-gain2=0.000000 - -# Freq 2 Q (float) -#param-eq-q2=3.000000 - -# Freq 3 (Hz) (float) -#param-eq-f3=3000.000000 - -# Freq 3 gain (dB) (float) -#param-eq-gain3=0.000000 - -# Freq 3 Q (float) -#param-eq-q3=3.000000 - -[normvol] # Volume normalizer - -# Number of audio buffers (integer) -#norm-buff-size=20 - -# Maximal volume level (float) -#norm-max-level=2.000000 - -[mono] # Stereo to mono downmixer - -# Use downmix algorithm (boolean) -#sout-mono-downmix=1 - -# Select channel to keep (integer) -#sout-mono-channel=-1 - -[headphone] # Headphone virtual spatialization effect - -# Characteristic dimension (integer) -#headphone-dim=10 - -# Compensate delay (boolean) -#headphone-compensate=0 - -# No decoding of Dolby Surround (boolean) -#headphone-dolby=0 - -[gain] # Gain control filter - -# Gain multiplier (float) -#gain-value=1.000000 - -[equalizer] # Equalizer with 10 bands - -# Equalizer preset (string) -#equalizer-preset=flat - -# Bands gain (string) -#equalizer-bands= - -# Two pass (boolean) -#equalizer-2pass=0 - -# Use VLC frequency bands (boolean) -#equalizer-vlcfreqs=1 - -# Global gain (float) -#equalizer-preamp=12.000000 - -[compressor] # Dynamic range compressor - -# RMS/peak (float) -#compressor-rms-peak=0.200000 - -# Attack time (float) -#compressor-attack=25.000000 - -# Release time (float) -#compressor-release=100.000000 - -# Threshold level (float) -#compressor-threshold=-11.000000 - -# Ratio (float) -#compressor-ratio=4.000000 - -# Knee radius (float) -#compressor-knee=5.000000 - -# Makeup gain (float) -#compressor-makeup-gain=7.000000 - -[chorus_flanger] # Sound Delay - -# Delay time (float) -#delay-time=20.000000 - -# Sweep Depth (float) -#sweep-depth=6.000000 - -# Sweep Rate (float) -#sweep-rate=6.000000 - -# Feedback gain (float) -#feedback-gain=0.500000 - -# Wet mix (float) -#wet-mix=0.400000 - -# Dry Mix (float) -#dry-mix=0.400000 - -[audiobargraph_a] # Audio part of the BarGraph function - -# Defines if BarGraph information should be sent (integer) -#audiobargraph_a-bargraph=1 - -# Sends the barGraph information every n audio packets (integer) -#audiobargraph_a-bargraph_repetition=4 - -# Defines if silence alarm information should be sent (integer) -#audiobargraph_a-silence=1 - -# Time window to use in ms (integer) -#audiobargraph_a-time_window=5000 - -# Minimum Audio level to raise the alarm (float) -#audiobargraph_a-alarm_threshold=0.020000 - -# Time between two alarm messages in ms (integer) -#audiobargraph_a-repetition_time=2000 - -[udp] # UDP stream output - -# Caching value (ms) (integer) -#sout-udp-caching=300 - -# Group packets (integer) -#sout-udp-group=1 - -[access_output_srt] # SRT stream output - -# Return poll wait after timeout milliseconds (-1 = infinite) (integer) -#poll-timeout=-1 - -# SRT latency (ms) (integer) -#latency=120 - -# Password for stream encryption (string) -#passphrase= - -# SRT maximum payload size (bytes) (integer) -#payload-size=1316 - -# SRT maximum bandwidth ceiling (bytes) (integer) -#bandwidth-overhead-limit=25 - -# Crypto key length in bytes (integer) -#key-length=16 - -# SRT Stream ID (string) -#streamid= - -[access_output_shout] # IceCAST output - -# Stream name (string) -#sout-shout-name=VLC media player - Live stream - -# Stream description (string) -#sout-shout-description=Live stream from VLC media player - -# Stream MP3 (boolean) -#sout-shout-mp3=0 - -# Genre description (string) -#sout-shout-genre=Alternative - -# URL description (string) -#sout-shout-url=http://www.videolan.org/vlc - -# Bitrate (string) -#sout-shout-bitrate= - -# Samplerate (string) -#sout-shout-samplerate= - -# Number of channels (string) -#sout-shout-channels= - -# Ogg Vorbis Quality (string) -#sout-shout-quality= - -# Stream public (boolean) -#sout-shout-public=0 - -[access_output_rist] # RIST stream output - -# RIST target packet size (bytes) (integer) -#sout-rist-packet-size=1328 - -# RIST data output caching size (ms) (integer) -#sout-rist-caching=50 - -# RIST retry-buffer queue size (ms) (integer) -#sout-rist-buffer-size=0 - -# SSRC used in RTP output (default is random, i.e. 0) (integer) -#sout-rist-ssrc=0 - -# Stream name (string) -#sout-rist-stream-name= - -[access_output_livehttp] # HTTP Live streaming output - -# Segment length (integer) -#sout-livehttp-seglen=10 - -# Number of segments (integer) -#sout-livehttp-numsegs=0 - -# Number of first segment (integer) -#sout-livehttp-initial-segment-number=1 - -# Split segments anywhere (boolean) -#sout-livehttp-splitanywhere=0 - -# Delete segments (boolean) -#sout-livehttp-delsegs=1 - -# Use muxers rate control mechanism (boolean) -#sout-livehttp-ratecontrol=0 - -# Allow cache (boolean) -#sout-livehttp-caching=0 - -# Use randomized IV for encryption (boolean) -#sout-livehttp-generate-iv=0 - -# Index file (string) -#sout-livehttp-index= - -# Full URL to put in index file (string) -#sout-livehttp-index-url= - -# AES key URI to place in playlist (string) -#sout-livehttp-key-uri= - -# AES key file (string) -#sout-livehttp-key-file= - -# File where vlc reads key-uri and keyfile-location (string) -#sout-livehttp-key-loadfile= - -[http] # HTTP stream output - -# Username (string) -#sout-http-user= - -# Password (string) -#sout-http-pwd= - -# Mime (string) -#sout-http-mime= - -# Metacube (boolean) -#sout-http-metacube=0 - -[file] # File stream output - -# Overwrite existing file (boolean) -#sout-file-overwrite=1 - -# Append to file (boolean) -#sout-file-append=0 - -# Format time and date (boolean) -#sout-file-format=0 - -# Synchronous writing (boolean) -#sout-file-sync=0 - -[access_jack] # JACK audio input - -# Pace (boolean) -#jack-input-use-vlc-pace=0 - -# Auto connection (boolean) -#jack-input-auto-connect=0 - -[xcb_screen] # Screen capture (with X11/XCB) - -# Frame rate (float) -#screen-fps=2.000000 - -# Region left column (integer) -#screen-left=0 - -# Region top row (integer) -#screen-top=0 - -# Capture region width (integer) -#screen-width=0 - -# Capture region height (integer) -#screen-height=0 - -# Follow the mouse (boolean) -#screen-follow-mouse=0 - -[vnc] # VNC client access - -# Username (string) -#rfb-user= - -# Password (string) -#rfb-password= - -# X.509 Certificate Authority (string) -#rfb-x509-ca= - -# X.509 Certificate Revocation List (string) -#rfb-x509-crl= - -# X.509 Client certificate (string) -#rfb-x509-client-cert= - -# X.509 Client private key (string) -#rfb-x509-client-key= - -# Frame rate (float) -#rfb-fps=5.000000 - -# Frame buffer depth (string) -#rfb-chroma=RV32 - -# Compression level (integer) -#rfb-compress-level=0 - -# Image quality (integer) -#rfb-quality-level=9 - -[vdr] # VDR recordings - -# Chapter offset in ms (integer) -#vdr-chapter-offset=0 - -# Frame rate (float) -#vdr-fps=25.000000 - -[v4l2] # Video4Linux input - -# Video capture device (string) -#v4l2-dev=/dev/video0 - -# VBI capture device (string) -#v4l2-vbidev= - -# Standard (string) -#v4l2-standard= - -# Video input chroma format (string) -#v4l2-chroma= - -# Input (integer) -#v4l2-input=0 - -# Audio input (integer) -#v4l2-audio-input=-1 - -# Width (integer) -#v4l2-width=0 - -# Height (integer) -#v4l2-height=0 - -# Picture aspect-ratio n:m (string) -#v4l2-aspect-ratio=4:3 - -# Frame rate (string) -#v4l2-fps=60 - -# Radio device (string) -#v4l2-radio-dev=/dev/radio0 - -# Frequency (integer) -#v4l2-tuner-frequency=-1 - -# Audio mode (integer) -#v4l2-tuner-audio-mode=3 - -# Reset controls (boolean) -#v4l2-controls-reset=0 - -# Brightness (integer) -#v4l2-brightness=-1 - -# Automatic brightness (integer) -#v4l2-brightness-auto=-1 - -# Contrast (integer) -#v4l2-contrast=-1 - -# Saturation (integer) -#v4l2-saturation=-1 - -# Hue (integer) -#v4l2-hue=-1 - -# Automatic hue (integer) -#v4l2-hue-auto=-1 - -# White balance temperature (K) (integer) -#v4l2-white-balance-temperature=-1 - -# Automatic white balance (integer) -#v4l2-auto-white-balance=-1 - -# Red balance (integer) -#v4l2-red-balance=-1 - -# Blue balance (integer) -#v4l2-blue-balance=-1 - -# Gamma (integer) -#v4l2-gamma=-1 - -# Automatic gain (integer) -#v4l2-autogain=-1 - -# Gain (integer) -#v4l2-gain=-1 - -# Sharpness (integer) -#v4l2-sharpness=-1 - -# Chroma gain (integer) -#v4l2-chroma-gain=-1 - -# Automatic chroma gain (integer) -#v4l2-chroma-gain-auto=-1 - -# Power line frequency (integer) -#v4l2-power-line-frequency=-1 - -# Backlight compensation (integer) -#v4l2-backlight-compensation=-1 - -# Band-stop filter (integer) -#v4l2-band-stop-filter=-1 - -# Horizontal flip (boolean) -#v4l2-hflip=0 - -# Vertical flip (boolean) -#v4l2-vflip=0 - -# Rotate (degrees) (integer) -#v4l2-rotate=-1 - -# Color killer (integer) -#v4l2-color-killer=-1 - -# Color effect (integer) -#v4l2-color-effect=-1 - -# Audio volume (integer) -#v4l2-audio-volume=-1 - -# Audio balance (integer) -#v4l2-audio-balance=-1 - -# Mute (boolean) -#v4l2-audio-mute=0 - -# Bass level (integer) -#v4l2-audio-bass=-1 - -# Treble level (integer) -#v4l2-audio-treble=-1 - -# Loudness mode (boolean) -#v4l2-audio-loudness=0 - -# v4l2 driver controls (string) -#v4l2-set-ctrls= - -[udp] # UDP input - -# UDP Source timeout (sec) (integer) -#udp-timeout=-1 - -[timecode] # Time code subpicture elementary stream generator - -# Frame rate (string) -#timecode-fps=25/1 - -[smb] # SMB input - -# Username (string) -#smb-user= - -# Password (string) -#smb-pwd= - -# SMB domain (string) -#smb-domain= - -[shm] # Shared memory framebuffer - -# Frame rate (float) -#shm-fps=10.000000 - -# Frame buffer depth (integer) -#shm-depth=0 - -# Frame buffer width (integer) -#shm-width=800 - -# Frame buffer height (integer) -#shm-height=480 - -[sftp] # SFTP input - -# SFTP port (integer) -#sftp-port=22 - -# Username (string) -#sftp-user= - -# Password (string) -#sftp-pwd= - -[satip] # SAT>IP Receiver Plugin - -# Receive buffer (integer) -#satip-buffer=4194304 - -# Request multicast stream (boolean) -#satip-multicast=0 - -# Host (string) -#satip-host= - -[rtp] # Real-Time Protocol (RTP) input - -# RTCP (local) port (integer) -#rtcp-port=0 - -# SRTP key (hexadecimal) (string) -#srtp-key= - -# SRTP salt (hexadecimal) (string) -#srtp-salt= - -# Maximum RTP sources (integer) -#rtp-max-src=1 - -# RTP source timeout (sec) (integer) -#rtp-timeout=5 - -# Maximum RTP sequence number dropout (integer) -#rtp-max-dropout=3000 - -# Maximum RTP sequence number misordering (integer) -#rtp-max-misorder=100 - -# RTP payload format assumed for dynamic payloads (string) -#rtp-dynamic-pt= - -[rist] # RIST input - -# RIST maximum packet size (bytes) (integer) -#packet-size=1472 - -# RIST demux/decode maximum jitter (default is 5ms) (integer) -#maximum-jitter=5 - -# RIST latency (ms) (integer) -#latency=1000 - -# RIST nack retry interval (ms) (integer) -#retry-interval=132 - -# RIST reorder buffer (ms) (integer) -#reorder-buffer=70 - -# RIST maximum retry count (integer) -#max-retries=10 - -# RIST nack type, 0 = range, 1 = bitmask. Default is range (integer) -#nack-type=0 - -# Disable NACK output packets (boolean) -#disable-nacks=0 - -# Do not check for a valid rtcp message from the encoder (boolean) -#mcast-blind-nacks=0 - -[live555] # RTP/RTSP/SDP demuxer (using Live555) - -# Use RTP over RTSP (TCP) (boolean) -#rtsp-tcp=0 - -# Client port (integer) -#rtp-client-port=-1 - -# Force multicast RTP via RTSP (boolean) -#rtsp-mcast=0 - -# Tunnel RTSP and RTP over HTTP (boolean) -#rtsp-http=0 - -# HTTP tunnel port (integer) -#rtsp-http-port=80 - -# Kasenna RTSP dialect (boolean) -#rtsp-kasenna=0 - -# WMServer RTSP dialect (boolean) -#rtsp-wmserver=0 - -# Username (string) -#rtsp-user= - -# Password (string) -#rtsp-pwd= - -# RTSP frame buffer size (integer) -#rtsp-frame-buffer-size=250000 - -[linsys_sdi] # SDI Input - -# Link # (integer) -#linsys-sdi-link=0 - -# Video ID (integer) -#linsys-sdi-id-video=0 - -# Aspect ratio (string) -#linsys-sdi-aspect-ratio= - -# Audio configuration (string) -#linsys-sdi-audio=0=1,1 - -# Teletext configuration (string) -#linsys-sdi-telx= - -# Teletext language (string) -#linsys-sdi-telx-lang= - -[linsys_hdsdi] # HD-SDI Input - -# Link # (integer) -#linsys-hdsdi-link=0 - -# Video ID (integer) -#linsys-hdsdi-id-video=0 - -# Aspect ratio (string) -#linsys-hdsdi-aspect-ratio= - -# Audio configuration (string) -#linsys-hdsdi-audio=0=1,1 - -[libbluray] # Blu-ray Disc support (libbluray) - -# Blu-ray menus (boolean) -#bluray-menu=1 - -# Region code (string) -#bluray-region=B - -[access] # HTTPS input - -# Cookies forwarding (boolean) -#http-forward-cookies=1 - -# User agent (string) -#http-user-agent= - -[http] # HTTP input - -# Auto re-connect (boolean) -#http-reconnect=0 - -[ftp] # FTP input - -# Username (string) -#ftp-user= - -# Password (string) -#ftp-pwd= - -# FTP account (string) -#ftp-account=anonymous - -[filesystem] # File input - -# List special files (boolean) -#list-special-files=0 - -[dvdread] # DVDRead Input (no menu support) - -# DVD angle (integer) -#dvdread-angle=1 - -[dvdnav] # DVDnav Input - -# DVD angle (integer) -#dvdnav-angle=1 - -# Start directly in menu (boolean) -#dvdnav-menu=1 - -[dvb] # DVB input with v4l2 support - -# Probe DVB card for capabilities (boolean) -#dvb-probe=1 - -# Satellite scanning config (string) -#dvb-satellite= - -# Scan tuning list (string) -#dvb-scanlist= - -# Use NIT for scanning services (boolean) -#dvb-scan-nit=1 - -[dtv] # Digital Television and Radio - -# DVB adapter (integer) -#dvb-adapter=0 - -# DVB device (integer) -#dvb-device=0 - -# Do not demultiplex (boolean) -#dvb-budget-mode=0 - -# Frequency (Hz) (integer) -#dvb-frequency=0 - -# Spectrum inversion (integer) -#dvb-inversion=-1 - -# Bandwidth (MHz) (integer) -#dvb-bandwidth=0 - -# Transmission mode (integer) -#dvb-transmission=0 - -# Guard interval (string) -#dvb-guard= - -# High-priority code rate (string) -#dvb-code-rate-hp= - -# Low-priority code rate (string) -#dvb-code-rate-lp= - -# Hierarchy mode (integer) -#dvb-hierarchy=-1 - -# DVB-T2 Physical Layer Pipe (integer) -#dvb-plp-id=0 - -# Layer A modulation (string) -#dvb-a-modulation= - -# Layer A code rate (string) -#dvb-a-fec= - -# Layer A segments count (integer) -#dvb-a-count=0 - -# Layer A time interleaving (integer) -#dvb-a-interleaving=0 - -# Layer B modulation (string) -#dvb-b-modulation= - -# Layer B code rate (string) -#dvb-b-fec= - -# Layer B segments count (integer) -#dvb-b-count=0 - -# Layer B time interleaving (integer) -#dvb-b-interleaving=0 - -# Layer C modulation (string) -#dvb-c-modulation= - -# Layer C code rate (string) -#dvb-c-fec= - -# Layer C segments count (integer) -#dvb-c-count=0 - -# Layer C time interleaving (integer) -#dvb-c-interleaving=0 - -# Modulation / Constellation (string) -#dvb-modulation= - -# Symbol rate (bauds) (integer) -#dvb-srate=0 - -# FEC code rate (string) -#dvb-fec= - -# Stream identifier (integer) -#dvb-stream=0 - -# Pilot (integer) -#dvb-pilot=-1 - -# Roll-off factor (integer) -#dvb-rolloff=-1 - -# Transport stream ID (integer) -#dvb-ts-id=0 - -# Polarization (Voltage) (string) -#dvb-polarization= - -# (integer) -#dvb-voltage=13 - -# High LNB voltage (boolean) -#dvb-high-voltage=0 - -# Local oscillator low frequency (kHz) (integer) -#dvb-lnb-low=0 - -# Local oscillator high frequency (kHz) (integer) -#dvb-lnb-high=0 - -# Universal LNB switch frequency (kHz) (integer) -#dvb-lnb-switch=11700000 - -# DiSEqC LNB number (integer) -#dvb-satno=0 - -# Uncommitted DiSEqC LNB number (integer) -#dvb-uncommitted=0 - -# Continuous 22kHz tone (integer) -#dvb-tone=-1 - -[cdda] # Audio CD input - -# Audio CD device (string) -#cd-audio=/dev/sr0 - -# Musicbrainz Server (string) -#musicbrainz-server=musicbrainz.org - -# CDDB Server (string) -#cddb-server=freedb.videolan.org - -# CDDB port (integer) -#cddb-port=80 - -[avio] # libavformat AVIO access - -# Advanced options (string) -#avio-options= - -# Advanced options (string) -#sout-avio-options= - -[access_srt] # SRT input - -# Return poll wait after timeout milliseconds (-1 = infinite) (integer) -#poll-timeout=-1 - -# SRT latency (ms) (integer) -#latency=120 - -# Password for stream encryption (string) -#passphrase= - -# Crypto key length in bytes (integer) -#key-length=16 - -# SRT Stream ID (string) -#streamid= - -[access_mms] # Microsoft Media Server (MMS) input - -# TCP/UDP timeout (ms) (integer) -#mms-timeout=5000 - -# Force selection of all streams (boolean) -#mms-all=0 - -# Maximum bitrate (integer) -#mms-maxbitrate=0 - -[imem] # Memory input - -# ID (integer) -#imem-id=-1 - -# Group (integer) -#imem-group=0 - -# Category (integer) -#imem-cat=0 - -# Codec (string) -#imem-codec= - -# Language (string) -#imem-language= - -# Sample rate (integer) -#imem-samplerate=0 - -# Channels count (integer) -#imem-channels=0 - -# Width (integer) -#imem-width=0 - -# Height (integer) -#imem-height=0 - -# Display aspect ratio (string) -#imem-dar= - -# Frame rate (string) -#imem-fps= - -# Size (integer) -#imem-size=0 - -[concat] # Concatenated inputs - -# Inputs list (string) -#concat-list= - -[access_alsa] # ALSA audio capture - -# Stereo (boolean) -#alsa-stereo=1 - -# Sample rate (integer) -#alsa-samplerate=48000 - -[core] # core program - -# Enable audio (boolean) -#audio=1 - -# Audio gain (float) -#gain=1.000000 - -# Audio output volume step (float) -#volume-step=12.800000 - -# Remember the audio volume (boolean) -#volume-save=1 - -# Force S/PDIF support (boolean) -#spdif=0 - -# Force detection of Dolby Surround (integer) -#force-dolby-surround=0 - -# Stereo audio output mode (integer) -#stereo-mode=0 - -# Audio desynchronization compensation (integer) -#audio-desync=0 - -# Replay gain mode (string) -#audio-replay-gain-mode=none - -# Replay preamp (float) -#audio-replay-gain-preamp=0.000000 - -# Default replay gain (float) -#audio-replay-gain-default=-7.000000 - -# Peak protection (boolean) -#audio-replay-gain-peak-protection=1 - -# Enable time stretching audio (boolean) -#audio-time-stretch=1 - -# Audio output module (string) -#aout= - -# Media role (string) -#role=video - -# Audio filters (string) -#audio-filter= - -# Audio visualizations (string) -#audio-visual=none - -# Audio resampler (string) -#audio-resampler= - -# Enable video (boolean) -#video=1 - -# Grayscale video output (boolean) -#grayscale=0 - -# Fullscreen video output (boolean) -#fullscreen=0 - -# Embedded video (boolean) -#embedded-video=1 - -# (boolean) -#xlib=1 - -# Drop late frames (boolean) -#drop-late-frames=1 - -# Skip frames (boolean) -#skip-frames=1 - -# Quiet synchro (boolean) -#quiet-synchro=0 - -# Key press events (boolean) -#keyboard-events=1 - -# Mouse events (boolean) -#mouse-events=1 - -# Always on top (boolean) -#video-on-top=0 - -# Enable wallpaper mode (boolean) -#video-wallpaper=0 - -# Disable screensaver (boolean) -#disable-screensaver=1 - -# Show media title on video (boolean) -#video-title-show=1 - -# Show video title for x milliseconds (integer) -#video-title-timeout=5000 - -# Position of video title (integer) -#video-title-position=8 - -# Hide cursor and fullscreen controller after x milliseconds (integer) -#mouse-hide-timeout=1000 - -# Video snapshot directory (or filename) (string) -#snapshot-path= - -# Video snapshot file prefix (string) -#snapshot-prefix=vlcsnap- - -# Video snapshot format (string) -#snapshot-format=png - -# Display video snapshot preview (boolean) -#snapshot-preview=1 - -# Use sequential numbers instead of timestamps (boolean) -#snapshot-sequential=0 - -# Video snapshot width (integer) -#snapshot-width=-1 - -# Video snapshot height (integer) -#snapshot-height=-1 - -# Video width (integer) -#width=-1 - -# Video height (integer) -#height=-1 - -# Video X coordinate (integer) -#video-x=0 - -# Video Y coordinate (integer) -#video-y=0 - -# Video cropping (string) -#crop= - -# Custom crop ratios list (string) -#custom-crop-ratios= - -# Source aspect ratio (string) -#aspect-ratio= - -# Video Auto Scaling (boolean) -#autoscale=1 - -# Monitor pixel aspect ratio (string) -#monitor-par= - -# Custom aspect ratios list (string) -#custom-aspect-ratios= - -# Fix HDTV height (boolean) -#hdtv-fix=1 - -# Window decorations (boolean) -#video-deco=1 - -# Video title (string) -#video-title= - -# Video alignment (integer) -#align=0 - -# Zoom video (float) -#zoom=1.000000 - -# Deinterlace (integer) -#deinterlace=-1 - -# Deinterlace mode (string) -#deinterlace-mode=auto - -# Video output module (string) -#vout= - -# Video filter module (string) -#video-filter= - -# Video splitter module (string) -#video-splitter= - -# Enable sub-pictures (boolean) -#spu=1 - -# On Screen Display (boolean) -#osd=1 - -# Text rendering module (string) -#text-renderer= - -# Use subtitle file (string) -#sub-file= - -# Autodetect subtitle files (boolean) -#sub-autodetect-file=1 - -# Subtitle autodetection fuzziness (integer) -#sub-autodetect-fuzzy=3 - -# Subtitle autodetection paths (string) -#sub-autodetect-path=./Subtitles, ./subtitles, ./Subs, ./subs - -# Force subtitle position (integer) -#sub-margin=0 - -# Subpictures source module (string) -#sub-source= - -# Subpictures filter module (string) -#sub-filter= - -# Program (integer) -#program=0 - -# Programs (string) -#programs= - -# Audio track (integer) -#audio-track=-1 - -# Subtitle track (integer) -#sub-track=-1 - -# Audio language (string) -#audio-language= - -# Subtitle language (string) -#sub-language= - -# Menu language (string) -#menu-language= - -# Audio track ID (integer) -#audio-track-id=-1 - -# Subtitle track ID (integer) -#sub-track-id=-1 - -# Preferred Closed Captions decoder (integer) -#captions=608 - -# Preferred video resolution (integer) -#preferred-resolution=-1 - -# Input repetitions (integer) -#input-repeat=0 - -# Start time (float) -#start-time=0.000000 - -# Stop time (float) -#stop-time=0.000000 - -# Run time (float) -#run-time=0.000000 - -# Fast seek (boolean) -#input-fast-seek=0 - -# Playback speed (float) -#rate=1.000000 - -# Input list (string) -#input-list= - -# Input slave (experimental) (string) -#input-slave= - -# Bookmarks list for a stream (string) -#bookmarks= - -# DVD device (string) -#dvd=/dev/sr0 - -# VCD device (string) -#vcd=/dev/sr0 - -# MTU of the network interface (integer) -#mtu=1400 - -# TCP connection timeout (integer) -#ipv4-timeout=5000 - -# HTTP server address (string) -#http-host= - -# HTTP server port (integer) -#http-port=8080 - -# HTTPS server port (integer) -#https-port=8443 - -# RTSP server address (string) -#rtsp-host= - -# RTSP server port (integer) -#rtsp-port=554 - -# HTTP/TLS server certificate (string) -#http-cert= - -# HTTP/TLS server private key (string) -#http-key= - -# SOCKS server (string) -#socks= - -# SOCKS user name (string) -#socks-user= - -# SOCKS password (string) -#socks-pwd= - -# Title metadata (string) -#meta-title= - -# Author metadata (string) -#meta-author= - -# Artist metadata (string) -#meta-artist= - -# Genre metadata (string) -#meta-genre= - -# Copyright metadata (string) -#meta-copyright= - -# Description metadata (string) -#meta-description= - -# Date metadata (string) -#meta-date= - -# URL metadata (string) -#meta-url= - -# File caching (ms) (integer) -#file-caching=1000 - -# Live capture caching (ms) (integer) -#live-caching=300 - -# Disc caching (ms) (integer) -#disc-caching=300 - -# Network caching (ms) (integer) -#network-caching=1000 - -# Clock reference average counter (integer) -#cr-average=40 - -# Clock synchronisation (integer) -#clock-synchro=-1 - -# Clock jitter (integer) -#clock-jitter=5000 - -# Network synchronisation (boolean) -#network-synchronisation=0 - -# Record directory (string) -#input-record-path= - -# Prefer native stream recording (boolean) -#input-record-native=1 - -# Timeshift directory (string) -#input-timeshift-path= - -# Timeshift granularity (integer) -#input-timeshift-granularity=-1 - -# Change title according to current media (string) -#input-title-format=$Z - -# Disable all lua plugins (boolean) -#lua=1 - -# Preferred decoders list (string) -#codec= - -# Preferred encoders list (string) -#encoder= - -# Access module (string) -#access= - -# Demux module (string) -#demux=any - -# Stream filter module (string) -#stream-filter= - -# Demux filter module (string) -#demux-filter= - -# Default stream output chain (string) -#sout= - -# Display while streaming (boolean) -#sout-display=0 - -# Keep stream output open (boolean) -#sout-keep=0 - -# Enable streaming of all ES (boolean) -#sout-all=1 - -# Enable audio stream output (boolean) -#sout-audio=1 - -# Enable video stream output (boolean) -#sout-video=1 - -# Enable SPU stream output (boolean) -#sout-spu=1 - -# Stream output muxer caching (ms) (integer) -#sout-mux-caching=1500 - -# VLM configuration file (string) -#vlm-conf= - -# SAP announcement interval (integer) -#sap-interval=5 - -# Mux module (string) -#mux= - -# Access output module (string) -#access_output= - -# Hop limit (TTL) (integer) -#ttl=-1 - -# Multicast output interface (string) -#miface= - -# DiffServ Code Point (integer) -#dscp=0 - -# Preferred packetizer list (string) -#packetizer= - -# VoD server module (string) -#vod-server= - -# Use a plugins cache (boolean) -#plugins-cache=1 - -# Scan for new plugins (boolean) -#plugins-scan=1 - -# Preferred keystore list (string) -#keystore= - -# Allow real-time priority (boolean) -#rt-priority=0 - -# Adjust VLC priority (integer) -#rt-offset=0 - -# Play files randomly forever (boolean) -#random=0 - -# Repeat all (boolean) -#loop=0 - -# Repeat current item (boolean) -#repeat=0 - -# Play and exit (boolean) -#play-and-exit=0 - -# Play and stop (boolean) -#play-and-stop=0 - -# Play and pause (boolean) -#play-and-pause=0 - -# Start paused (boolean) -#start-paused=0 - -# Auto start (boolean) -#playlist-autostart=1 - -# Pause on audio communication (boolean) -#playlist-cork=1 - -# Allow only one running instance (boolean) -#one-instance=0 - -# Use only one instance when started from file manager (boolean) -#one-instance-when-started-from-file=1 - -# Enqueue items into playlist in one instance mode (boolean) -#playlist-enqueue=0 - -# Expose media player via D-Bus (boolean) -#dbus=0 - -# Use media library (boolean) -#media-library=0 - -# Display playlist tree (boolean) -#playlist-tree=0 - -# Default stream (string) -#open= - -# Automatically preparse items (boolean) -#auto-preparse=1 - -# Preparsing timeout (integer) -#preparse-timeout=5000 - -# Allow metadata network access (boolean) -metadata-network-access=1 - -# Subdirectory behavior (string) -#recursive=collapse - -# Ignored extensions (string) -#ignore-filetypes=m3u,db,nfo,ini,jpg,jpeg,ljpg,gif,png,pgm,pgmyuv,pbm,pam,tga,bmp,pnm,xpm,xcf,pcx,tif,tiff,lbm,sfv,txt,sub,idx,srt,cue,ssa - -# Show hidden files (boolean) -#show-hiddenfiles=0 - -# Services discovery modules (string) -#services-discovery= - -# Run as daemon process (boolean) -#daemon=0 - -# Write process id to file (string) -#pidfile= - -# Show advanced options (boolean) -#advanced=0 - -# Interface interaction (boolean) -#interact=1 - -# Locally collect statistics (boolean) -#stats=1 - -# Interface module (string) -#intf= - -# Extra interface modules (string) -#extraintf= - -# Control interfaces (string) -#control= - -# Mouse wheel vertical axis control (integer) -#hotkeys-y-wheel-mode=0 - -# Mouse wheel horizontal axis control (integer) -#hotkeys-x-wheel-mode=2 - -# Fullscreen (string) -#global-key-toggle-fullscreen= - -# Fullscreen (string) -#key-toggle-fullscreen=f - -# Exit fullscreen (string) -#global-key-leave-fullscreen= - -# Exit fullscreen (string) -#key-leave-fullscreen=Esc - -# Play/Pause (string) -#global-key-play-pause= - -# Play/Pause (string) -#key-play-pause=Space Media Play Pause - -# Pause only (string) -#global-key-pause= - -# Pause only (string) -#key-pause=Browser Stop - -# Play only (string) -#global-key-play= - -# Play only (string) -#key-play=Browser Refresh - -# Faster (string) -#global-key-faster= - -# Faster (string) -#key-faster=+ - -# Slower (string) -#global-key-slower= - -# Slower (string) -#key-slower=- - -# Normal rate (string) -#global-key-rate-normal= - -# Normal rate (string) -#key-rate-normal== - -# Faster (fine) (string) -#global-key-rate-faster-fine= - -# Faster (fine) (string) -#key-rate-faster-fine=] - -# Slower (fine) (string) -#global-key-rate-slower-fine= - -# Slower (fine) (string) -#key-rate-slower-fine=[ - -# Next (string) -#global-key-next= - -# Next (string) -#key-next=n Media Next Track - -# Previous (string) -#global-key-prev= - -# Previous (string) -#key-prev=p Media Prev Track - -# Stop (string) -#global-key-stop= - -# Stop (string) -#key-stop=s Media Stop - -# Position (string) -#global-key-position= - -# Position (string) -#key-position=t - -# Very short backwards jump (string) -#global-key-jump-extrashort= - -# Very short backwards jump (string) -#key-jump-extrashort=Shift+Left - -# Very short forward jump (string) -#global-key-jump+extrashort= - -# Very short forward jump (string) -#key-jump+extrashort=Shift+Right - -# Short backwards jump (string) -#global-key-jump-short= - -# Short backwards jump (string) -#key-jump-short=Alt+Left - -# Short forward jump (string) -#global-key-jump+short= - -# Short forward jump (string) -#key-jump+short=Alt+Right - -# Medium backwards jump (string) -#global-key-jump-medium= - -# Medium backwards jump (string) -#key-jump-medium=Ctrl+Left - -# Medium forward jump (string) -#global-key-jump+medium= - -# Medium forward jump (string) -#key-jump+medium=Ctrl+Right - -# Long backwards jump (string) -#global-key-jump-long= - -# Long backwards jump (string) -#key-jump-long=Ctrl+Alt+Left - -# Long forward jump (string) -#global-key-jump+long= - -# Long forward jump (string) -#key-jump+long=Ctrl+Alt+Right - -# Next frame (string) -#global-key-frame-next= - -# Next frame (string) -#key-frame-next=e Browser Next - -# Activate (string) -#global-key-nav-activate= - -# Activate (string) -#key-nav-activate=Enter - -# Navigate up (string) -#global-key-nav-up= - -# Navigate up (string) -#key-nav-up=Up - -# Navigate down (string) -#global-key-nav-down= - -# Navigate down (string) -#key-nav-down=Down - -# Navigate left (string) -#global-key-nav-left= - -# Navigate left (string) -#key-nav-left=Left - -# Navigate right (string) -#global-key-nav-right= - -# Navigate right (string) -#key-nav-right=Right - -# Go to the DVD menu (string) -#global-key-disc-menu= - -# Go to the DVD menu (string) -#key-disc-menu=Shift+m - -# Select previous DVD title (string) -#global-key-title-prev= - -# Select previous DVD title (string) -#key-title-prev=Shift+o - -# Select next DVD title (string) -#global-key-title-next= - -# Select next DVD title (string) -#key-title-next=Shift+b - -# Select prev DVD chapter (string) -#global-key-chapter-prev= - -# Select prev DVD chapter (string) -#key-chapter-prev=Shift+p - -# Select next DVD chapter (string) -#global-key-chapter-next= - -# Select next DVD chapter (string) -#key-chapter-next=Shift+n - -# Quit (string) -#global-key-quit= - -# Quit (string) -#key-quit=Ctrl+q - -# Volume up (string) -#global-key-vol-up= - -# Volume up (string) -#key-vol-up=Ctrl+Up Volume Up - -# Volume down (string) -#global-key-vol-down= - -# Volume down (string) -#key-vol-down=Ctrl+Down Volume Down - -# Mute (string) -#global-key-vol-mute= - -# Mute (string) -#key-vol-mute=m Volume Mute - -# Subtitle delay up (string) -#global-key-subdelay-up= - -# Subtitle delay up (string) -#key-subdelay-up=h - -# Subtitle delay down (string) -#global-key-subdelay-down= - -# Subtitle delay down (string) -#key-subdelay-down=g - -# Subtitle sync / bookmark audio timestamp (string) -#global-key-subsync-markaudio= - -# Subtitle sync / bookmark audio timestamp (string) -#key-subsync-markaudio=Shift+h - -# Subtitle sync / bookmark subtitle timestamp (string) -#global-key-subsync-marksub= - -# Subtitle sync / bookmark subtitle timestamp (string) -#key-subsync-marksub=Shift+j - -# Subtitle sync / synchronize audio & subtitle timestamps (string) -#global-key-subsync-apply= - -# Subtitle sync / synchronize audio & subtitle timestamps (string) -#key-subsync-apply=Shift+k - -# Subtitle sync / reset audio & subtitle synchronization (string) -#global-key-subsync-reset= - -# Subtitle sync / reset audio & subtitle synchronization (string) -#key-subsync-reset=Ctrl+Shift+k - -# Subtitle position up (string) -#global-key-subpos-up= - -# Subtitle position up (string) -#key-subpos-up= - -# Subtitle position down (string) -#global-key-subpos-down= - -# Subtitle position down (string) -#key-subpos-down= - -# Audio delay up (string) -#global-key-audiodelay-up= - -# Audio delay up (string) -#key-audiodelay-up=k - -# Audio delay down (string) -#global-key-audiodelay-down= - -# Audio delay down (string) -#key-audiodelay-down=j - -# Cycle audio track (string) -#global-key-audio-track= - -# Cycle audio track (string) -#key-audio-track=b - -# Cycle through audio devices (string) -#global-key-audiodevice-cycle= - -# Cycle through audio devices (string) -#key-audiodevice-cycle=Shift+a - -# Cycle subtitle track in reverse order (string) -#global-key-subtitle-revtrack= - -# Cycle subtitle track in reverse order (string) -#key-subtitle-revtrack=Alt+v - -# Cycle subtitle track (string) -#global-key-subtitle-track= - -# Cycle subtitle track (string) -#key-subtitle-track=v - -# Toggle subtitles (string) -#global-key-subtitle-toggle= - -# Toggle subtitles (string) -#key-subtitle-toggle=Shift+v - -# Cycle next program Service ID (string) -#global-key-program-sid-next= - -# Cycle next program Service ID (string) -#key-program-sid-next=x - -# Cycle previous program Service ID (string) -#global-key-program-sid-prev= - -# Cycle previous program Service ID (string) -#key-program-sid-prev=Shift+x - -# Cycle source aspect ratio (string) -#global-key-aspect-ratio= - -# Cycle source aspect ratio (string) -#key-aspect-ratio=a - -# Cycle video crop (string) -#global-key-crop= - -# Cycle video crop (string) -#key-crop=c - -# Toggle autoscaling (string) -#global-key-toggle-autoscale= - -# Toggle autoscaling (string) -#key-toggle-autoscale=o - -# Increase scale factor (string) -#global-key-incr-scalefactor= - -# Increase scale factor (string) -#key-incr-scalefactor=Alt+o - -# Decrease scale factor (string) -#global-key-decr-scalefactor= - -# Decrease scale factor (string) -#key-decr-scalefactor=Alt+Shift+o - -# Toggle deinterlacing (string) -#global-key-deinterlace= - -# Toggle deinterlacing (string) -#key-deinterlace=d - -# Cycle deinterlace modes (string) -#global-key-deinterlace-mode= - -# Cycle deinterlace modes (string) -#key-deinterlace-mode=Shift+d - -# Show controller in fullscreen (string) -#global-key-intf-show= - -# Show controller in fullscreen (string) -#key-intf-show=i - -# Boss key (string) -#global-key-intf-boss= - -# Boss key (string) -#key-intf-boss= - -# Context menu (string) -#global-key-intf-popup-menu= - -# Context menu (string) -#key-intf-popup-menu=Menu - -# Take video snapshot (string) -#global-key-snapshot= - -# Take video snapshot (string) -#key-snapshot=Shift+s - -# Record (string) -#global-key-record= - -# Record (string) -#key-record=Shift+r - -# Zoom (string) -#global-key-zoom= - -# Zoom (string) -#key-zoom=z - -# Un-Zoom (string) -#global-key-unzoom= - -# Un-Zoom (string) -#key-unzoom=Shift+z - -# Toggle wallpaper mode in video output (string) -#global-key-wallpaper= - -# Toggle wallpaper mode in video output (string) -#key-wallpaper=w - -# Crop one pixel from the top of the video (string) -#global-key-crop-top= - -# Crop one pixel from the top of the video (string) -#key-crop-top=Alt+r - -# Uncrop one pixel from the top of the video (string) -#global-key-uncrop-top= - -# Uncrop one pixel from the top of the video (string) -#key-uncrop-top=Alt+Shift+r - -# Crop one pixel from the left of the video (string) -#global-key-crop-left= - -# Crop one pixel from the left of the video (string) -#key-crop-left=Alt+d - -# Uncrop one pixel from the left of the video (string) -#global-key-uncrop-left= - -# Uncrop one pixel from the left of the video (string) -#key-uncrop-left=Alt+Shift+d - -# Crop one pixel from the bottom of the video (string) -#global-key-crop-bottom= - -# Crop one pixel from the bottom of the video (string) -#key-crop-bottom=Alt+c - -# Uncrop one pixel from the bottom of the video (string) -#global-key-uncrop-bottom= - -# Uncrop one pixel from the bottom of the video (string) -#key-uncrop-bottom=Alt+Shift+c - -# Crop one pixel from the right of the video (string) -#global-key-crop-right= - -# Crop one pixel from the right of the video (string) -#key-crop-right=Alt+f - -# Uncrop one pixel from the right of the video (string) -#global-key-uncrop-right= - -# Uncrop one pixel from the right of the video (string) -#key-uncrop-right=Alt+Shift+f - -# Random (string) -#global-key-random= - -# Random (string) -#key-random=r - -# Normal/Loop/Repeat (string) -#global-key-loop= - -# Normal/Loop/Repeat (string) -#key-loop=l - -# Shrink the viewpoint field of view (360°) (string) -#global-key-viewpoint-fov-in= - -# Shrink the viewpoint field of view (360°) (string) -#key-viewpoint-fov-in=Page Up - -# Expand the viewpoint field of view (360°) (string) -#global-key-viewpoint-fov-out= - -# Expand the viewpoint field of view (360°) (string) -#key-viewpoint-fov-out=Page Down - -# Roll the viewpoint clockwise (360°) (string) -#global-key-viewpoint-roll-clock= - -# Roll the viewpoint clockwise (360°) (string) -#key-viewpoint-roll-clock= - -# Roll the viewpoint anti-clockwise (360°) (string) -#global-key-viewpoint-roll-anticlock= - -# Roll the viewpoint anti-clockwise (360°) (string) -#key-viewpoint-roll-anticlock= - -# 1:4 Quarter (string) -#global-key-zoom-quarter= - -# 1:4 Quarter (string) -#key-zoom-quarter=Alt+1 - -# 1:2 Half (string) -#global-key-zoom-half= - -# 1:2 Half (string) -#key-zoom-half=Alt+2 - -# 1:1 Original (string) -#global-key-zoom-original= - -# 1:1 Original (string) -#key-zoom-original=Alt+3 - -# 2:1 Double (string) -#global-key-zoom-double= - -# 2:1 Double (string) -#key-zoom-double=Alt+4 - -# Very short jump length (integer) -#extrashort-jump-size=3 - -# Short jump length (integer) -#short-jump-size=10 - -# Medium jump length (integer) -#medium-jump-size=60 - -# Long jump length (integer) -#long-jump-size=300 - -# Set playlist bookmark 1 (string) -#global-key-set-bookmark1= - -# Set playlist bookmark 1 (string) -#key-set-bookmark1=Ctrl+F1 - -# Set playlist bookmark 2 (string) -#global-key-set-bookmark2= - -# Set playlist bookmark 2 (string) -#key-set-bookmark2=Ctrl+F2 - -# Set playlist bookmark 3 (string) -#global-key-set-bookmark3= - -# Set playlist bookmark 3 (string) -#key-set-bookmark3=Ctrl+F3 - -# Set playlist bookmark 4 (string) -#global-key-set-bookmark4= - -# Set playlist bookmark 4 (string) -#key-set-bookmark4=Ctrl+F4 - -# Set playlist bookmark 5 (string) -#global-key-set-bookmark5= - -# Set playlist bookmark 5 (string) -#key-set-bookmark5=Ctrl+F5 - -# Set playlist bookmark 6 (string) -#global-key-set-bookmark6= - -# Set playlist bookmark 6 (string) -#key-set-bookmark6=Ctrl+F6 - -# Set playlist bookmark 7 (string) -#global-key-set-bookmark7= - -# Set playlist bookmark 7 (string) -#key-set-bookmark7=Ctrl+F7 - -# Set playlist bookmark 8 (string) -#global-key-set-bookmark8= - -# Set playlist bookmark 8 (string) -#key-set-bookmark8=Ctrl+F8 - -# Set playlist bookmark 9 (string) -#global-key-set-bookmark9= - -# Set playlist bookmark 9 (string) -#key-set-bookmark9=Ctrl+F9 - -# Set playlist bookmark 10 (string) -#global-key-set-bookmark10= - -# Set playlist bookmark 10 (string) -#key-set-bookmark10=Ctrl+F10 - -# Play playlist bookmark 1 (string) -#global-key-play-bookmark1= - -# Play playlist bookmark 1 (string) -#key-play-bookmark1=F1 - -# Play playlist bookmark 2 (string) -#global-key-play-bookmark2= - -# Play playlist bookmark 2 (string) -#key-play-bookmark2=F2 - -# Play playlist bookmark 3 (string) -#global-key-play-bookmark3= - -# Play playlist bookmark 3 (string) -#key-play-bookmark3=F3 - -# Play playlist bookmark 4 (string) -#global-key-play-bookmark4= - -# Play playlist bookmark 4 (string) -#key-play-bookmark4=F4 - -# Play playlist bookmark 5 (string) -#global-key-play-bookmark5= - -# Play playlist bookmark 5 (string) -#key-play-bookmark5=F5 - -# Play playlist bookmark 6 (string) -#global-key-play-bookmark6= - -# Play playlist bookmark 6 (string) -#key-play-bookmark6=F6 - -# Play playlist bookmark 7 (string) -#global-key-play-bookmark7= - -# Play playlist bookmark 7 (string) -#key-play-bookmark7=F7 - -# Play playlist bookmark 8 (string) -#global-key-play-bookmark8= - -# Play playlist bookmark 8 (string) -#key-play-bookmark8=F8 - -# Play playlist bookmark 9 (string) -#global-key-play-bookmark9= - -# Play playlist bookmark 9 (string) -#key-play-bookmark9=F9 - -# Play playlist bookmark 10 (string) -#global-key-play-bookmark10= - -# Play playlist bookmark 10 (string) -#key-play-bookmark10=F10 - -# Clear the playlist (string) -#global-key-clear-playlist= - -# Clear the playlist (string) -#key-clear-playlist=Ctrl+w - -# Reset subtitles text scale (string) -#global-key-subtitle-text-scale-normal= - -# Reset subtitles text scale (string) -#key-subtitle-text-scale-normal=Ctrl+0 - -# Scale down subtitles text (string) -#global-key-subtitle-text-scale-up= - -# Scale down subtitles text (string) -#key-subtitle-text-scale-up=Ctrl+Mouse Wheel Up - -# Scale up subtitles text (string) -#global-key-subtitle-text-scale-down= - -# Scale up subtitles text (string) -#key-subtitle-text-scale-down=Ctrl+Mouse Wheel Down - -# Playlist bookmark 1 (string) -#bookmark1= - -# Playlist bookmark 2 (string) -#bookmark2= - -# Playlist bookmark 3 (string) -#bookmark3= - -# Playlist bookmark 4 (string) -#bookmark4= - -# Playlist bookmark 5 (string) -#bookmark5= - -# Playlist bookmark 6 (string) -#bookmark6= - -# Playlist bookmark 7 (string) -#bookmark7= - -# Playlist bookmark 8 (string) -#bookmark8= - -# Playlist bookmark 9 (string) -#bookmark9= - -# Playlist bookmark 10 (string) -#bookmark10= - diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc deleted file mode 100644 index 9e42058..0000000 --- a/.config/waybar/config.jsonc +++ /dev/null @@ -1,66 +0,0 @@ -{ - // "layer": "top", // Waybar at top layer - // "position": "bottom", // Waybar position (top|bottom|left|right) - "height": 24, // Waybar height (to be removed for auto height) - // "width": 1280, // Waybar width - "spacing": 0, // Gaps between modules (4px) - // Choose the order of the modules - "modules-left": ["sway/workspaces", "sway/mode"], - "modules-center": ["sway/window"], - "modules-right": ["cpu", "memory", "sway/language", "tray", "clock"], - // Modules configuration - "sway/workspaces": { - "disable-scroll": true, - "all-outputs": false, - "format": "{icon}", - "persistent_workspaces": { - "1": ["DP-2"], - "2": ["DP-3"], - "3": ["DP-2"], - "4": ["DP-3"], - "5": ["DP-2"], - "6": ["DP-3"], - "7": ["DP-2"], - "8": ["DP-3"] - }, - "format-icons": { - "1": "䷀", - "2": "䷁", - "3": "䷂", - "4": "䷃", - "5": "䷄", - "6": "䷅", - "7": "䷆", - "8": "䷇", - "urgent": "" - //"focused": "", - //"default": "" - } - }, - "sway/mode": { - "format": "{}" - }, - //"idle_inhibitor": { - //"format": "{icon}", - //"format-icons": { - //"activated": "", - //"deactivated": "" - //} - //}, - "tray": { - // "icon-size": 21, - "spacing": 10 - }, - "clock": { - // "timezone": "America/New_York", - "tooltip-format": "{:%Y %B}\n{calendar}", - "format-alt": "{:%Y-%m-%d}" - }, - "cpu": { - "format": "{usage}% ", - "tooltip": false - }, - "memory": { - "format": "{}% " - } -} diff --git a/.config/waybar/style.css b/.config/waybar/style.css deleted file mode 100644 index 4042e86..0000000 --- a/.config/waybar/style.css +++ /dev/null @@ -1,43 +0,0 @@ -* { - border: none; - border-radius: 0; - font-family: "Ubuntu Nerd Font"; - font-size: 13px; - min-height: 0; -} - -window#waybar { - background: transparent; - color: white; -} - -#window { - font-weight: bold; - font-family: "Ubuntu"; -} - -#workspaces button { - padding: 0 5px; - background: transparent; - color: white; - border-top: 2px solid transparent; -} - -#workspaces button.focused { - color: #BD93F9; - border-top: 2px solid #BD93F9; -} - -#mode { - background: #64727D; - border-bottom: 3px solid white; -} - -#clock, #cpu, #memory, #language, #tray, #mode { - padding: 0 3px; - margin: 0 2px; -} - -#clock { - font-weight: bold; -} diff --git a/.config/wezterm/wezterm.lua b/.config/wezterm/wezterm.lua deleted file mode 100644 index 92aadc3..0000000 --- a/.config/wezterm/wezterm.lua +++ /dev/null @@ -1,15 +0,0 @@ -local wezterm = require 'wezterm'; - -return { - color_scheme = "Dracula", - font = wezterm.font("FantasqueSansMono NF"), - font_size = 11, - hide_tab_bar_if_only_one_tab = true, - window_background_opacity = 0.88, - window_padding = { - left = 16, - right = 16, - top = 16, - bottom = 16, - }, -} diff --git a/.config/wofi/config b/.config/wofi/config deleted file mode 100644 index 766981a..0000000 --- a/.config/wofi/config +++ /dev/null @@ -1,12 +0,0 @@ -style=/home/wizardlink/.config/wofi/mono.css -location=center -show=drun -width=500 -height=500 -always_parse_args=true -show_all=true -print_command=true -layer=overlay -insensitive=true -prompt= -content_halign=center diff --git a/.config/wofi/mono.css b/.config/wofi/mono.css deleted file mode 100644 index 8da6585..0000000 --- a/.config/wofi/mono.css +++ /dev/null @@ -1,39 +0,0 @@ -window { - margin: 0px; - border: 2px solid #bd93f9; - background-color: transparent; -} - -#input { - margin: 5px; - border: none; - color: #f8f8f2; - background-color: #44475a; -} - -#inner-box { - margin: 5px; - border: none; - background-color: #282a36; -} - -#outer-box { - margin: 5px; - border: none; - background-color: transparent; -} - -#scroll { - margin: 0px; - border: none; -} - -#text { - margin: 5px; - border: none; - color: #f8f8f2; -} - -#entry:selected { - background-color: #44475a; -} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..fc94ede --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +max_line_length = 120 +trim_trailing_whitespace = true diff --git a/.gitconfig b/.gitconfig deleted file mode 100644 index c7a3809..0000000 --- a/.gitconfig +++ /dev/null @@ -1,104 +0,0 @@ -############################### -# # -# My Linux .gitconfig # -# # -# Last revision: # -# 2020-12-04 # -# # -############################### - -[alias] - ; List aliases - aliases = config --get-regexp alias - - ; List all the contributors with commit amount - contributors = shortlog --summary --numbered - - ; Output verbose info about branches and tags - branches = branch -avv - - ; List all tags - tags = tag -l - - ; Pretty logs - plog = log --graph --decorate --all - - ; Pretty grep - gcommit = log --graph --decorate --grep - -[core] - # Your path might be different, but unlikely - # -- this needs to manually be set because - # -- GIT for Windows has it's own vim - # -- so it will run that instead. - ; Set the editor to be used by GIT - editor = ~/.local/bin/lvim - - ; Custom .gitignore - excludesfile = ~/.gitignore - - ; Treat trailing whitespaces and spaces before tabs as an error - whitespace = space-before-tab,-indent-with-non-tab,trailing-space - -[color] - ; Use colors in GIT commands - ui = auto - -[commit] - ; https://help.github.com/articles/signing-commits-using-gpg/ - gpgsign = true - -[tag] - gpgsign = true - -[difftool] - prompt = true - -[difftool "lvimdiff"] - cmd = ~/.local/bin/lvim -d "$LOCAL" "$REMOTE" - -[diff] - # Your path might be different, but unlikely - # -- this needs to manually be set because - # -- GIT for Windows has it's own vim - # -- so it will run that instead. - ; Set the editor to be used by GIT - tool = ~/.local/bin/lvim - -[mergetool] - ; https://www.git-scm.com/docs/git-mergetool#Documentation/git-mergetool.txt---no-prompt - prompt = false - -[mergetool "lvimdiff"] - cmd = ~/.local/bin/lvim -f -d -c '$wincmd w | wincmd J' "$LOCAL" "$BASE" "$REMOTE" "$MERGED" - -[merge] - # Your path might be different, but unlikely - # -- this needs to manually be set because - # -- GIT for Windows has it's own vim - # -- so it will run that instead. - tool = lvimdiff - - ; https://git-scm.com/docs/git-merge#_how_conflicts_are_presented - conflictstyle = diff3 - -[push] - ; https://stackoverflow.com/questions/21839651/git-what-is-the-difference-between-push-default-matching-and-simple - default = simple - - ; git-push pushes relevant annotated tags when pushing branches out - followTags = true - -[user] - name = Alexandre Cavalheiro S. Tiago da Silva - email = contact@thewizard.link - signingkey = A1D3A2B4E14BD7C0445BB749A5767B54367CFBDF - -[pull] - ff = only - -[init] - defaultBranch = main - -[credential] - helper = /usr/libexec/git-core/git-credential-libsecret diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 0a1dbc0..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule ".themes/dracula"] - path = .themes/dracula - url = https://github.com/dracula/gtk diff --git a/.local/share/pipewire/librnnoise_ladspa.so b/.local/share/pipewire/librnnoise_ladspa.so deleted file mode 100644 index dfdfe8d..0000000 Binary files a/.local/share/pipewire/librnnoise_ladspa.so and /dev/null differ diff --git a/.local/share/scripts/steam/launch.sh b/.local/share/scripts/steam/launch.sh deleted file mode 100755 index bde189b..0000000 --- a/.local/share/scripts/steam/launch.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -export AMD_VULKAN_ICD="RADV" -export DXVK_ASYNC=1 -export DXVK_STATE_CACHE=1 -export MANGOHUD=1 -export RADV_PERFTEST="gpl" - -gamemoderun "$@" diff --git a/.local/share/scripts/steam/launch_gamescope.sh b/.local/share/scripts/steam/launch_gamescope.sh deleted file mode 100755 index 5b3ea6e..0000000 --- a/.local/share/scripts/steam/launch_gamescope.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -export AMD_VULKAN_ICD="RADV" -export DXVK_ASYNC=1 -export DXVK_STATE_CACHE=1 -export MANGOHUD=1 -export RADV_PERFTEST="gpl" - -gamescope -w 1280 -h 720 -W 1920 -H 1080 -f -- gamemoderun "$@" diff --git a/.local/share/scripts/steam/launch_raytracing.sh b/.local/share/scripts/steam/launch_raytracing.sh deleted file mode 100755 index be68a53..0000000 --- a/.local/share/scripts/steam/launch_raytracing.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -export AMD_VULKAN_ICD="RADV" -export DXVK_ASYNC=1 -export DXVK_STATE_CACHE=1 -export MANGOHUD=1 -export RADV_PERFTEST="rt,gpl" -export VKD3D_CONFIG="dxr11" -export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 - -gamemoderun "$@" -dx12 diff --git a/.neoconf.json b/.neoconf.json new file mode 100644 index 0000000..1a1be43 --- /dev/null +++ b/.neoconf.json @@ -0,0 +1,14 @@ +{ + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + }, + "lspconfig": { + "lua_ls": { + "Lua.completion.callSnippet": "Replace" + } + } +} diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000..3ee0ae0 --- /dev/null +++ b/.stylua.toml @@ -0,0 +1,5 @@ +quote_style = "AutoPreferDouble" +call_parentheses = "None" + +[sort_requires] +enabled = true diff --git a/.themes/dracula b/.themes/dracula deleted file mode 160000 index 247f957..0000000 --- a/.themes/dracula +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 247f95718b769c26c488f801d9d8bb001e675afe diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f3cd6a5 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# linuxware + +This repository contains the configuration of my main Linux based system(s), currently this repository consists of a +[NixOS] system configuration alongside [dotfiles] generated by [Home Manager] and [dotfiles] maintained by me. + +## Navigation guide + +In this section I will detail how you can navigate and make the most use out of my configuration. + +### File structure + +- [`flake.nix` & `flake.lock`](#flake) + - _This is the "entry-point" of the [NixOS] configuration._ +- [`hosts/`](/hosts/) + - _Inside you can find the per-system customizations I've made._ +- [`modules/`](/modules/) + - _These contain the modules I export in the [flake](#flake)._ +- [`packages/`](/packages/) + - _Encompasses the packages I maintain outside or in tandem with [nixpkgs]._ +- [`shared/`](/shared/) + - _The [NixOS] and [Home Manager] configuration that's shared across hosts._ +- [`assets/`](/assets/) + - _All media used in this configuration or shown inside READMEs._ + +> _Be sure to click the hyperlinks for the relevant documentation._ + +#### Flake + +A flake basically contains what you want to consume in your environment and what you want to export to be consumed, on +top of having a lockfile to pin the versions of what you are consuming. + +Personally, the best way to learn how to use it as a beginner is the [Unofficial NixOS & Flakes +Book](https://nixos-and-flakes.thiscute.world/). I will not explain how to configure or use my flake as that would be +lenghty. + +I export four modules that you can use in your configuration: +- [Hyprland NixOS configuration](/modules/hyprland/README.md) + - _Accessed through `.nixosModules.hyprland`._ +- [Hyprland home-manager configuration](/modules/hyprland/README.md#configuration) + - _Accessed through `.homeManagerModules.hyprland`._ +- [Emacs home-manager configuration & dotfiles](/modules/emacs/README.md) + - _Accessed through `.homeManagerModules.emacs`_ +- [Neovim home-manager configuration & dotfiles](/modules/neovim/README.md) + - _Accessed through `.homeManagerModules.neovim`._ + +> _Be sure to click the hyperlinks for the relevant documentation._ + +To facilitate on-boarding, once you've set-up the experimental features needed for flakes I have provided a template +with this repository for you to use; it comes with a [NixOS] system configuration, [Home Manager] configuration +alongside the modules that I provide. + +All you have to do is enter the directory you want your configuration to reside and execute +`nix flake init -t github:wizardlink/linuxware`. Be sure to read the `README.md` file! + +## Desktop screenshot + +![image](/assets/screenshots/full-system.png) + +> _All screenshots of the system and it's components are available [here](/assets/README.md)._ + + + + +[dotfiles]: https://wiki.archlinux.org/title/Dotfiles +[home manager]: https://github.com/nix-community/home-manager +[nixos]: https://nixos.org/ +[nixpkgs]: https://github.com/NixOS/nixpkgs/ diff --git a/assets/README.md b/assets/README.md new file mode 100644 index 0000000..bb897d8 --- /dev/null +++ b/assets/README.md @@ -0,0 +1,42 @@ +## Desktop + +![image](./screenshots/full-system.png) + +### Window gaps + +![image](./screenshots/hyprland-gaps.png) + +### Window borders + +![image](./screenshots/hyprland-active.png) +![image](./screenshots/hyprland-inactive.png) + +## Programs + +### Neovim + +![image](./screenshots/neovim-dashboard.png) +![image](./screenshots/neovim-nix.png) +![image](./screenshots/neovim-rust.png) + +### Alacritty & Fish + +![image](./screenshots/alacritty-and-fish.png) + +### Rofi + +![image](./screenshots/rofi.png) + +### Waybar + +![image](./screenshots/waybar.png) + +### Emacs + +![image](./screenshots/doomemacs.png) + +## System + +### SDDM background + +![image](./sddm/Background.jpg) diff --git a/assets/screenshots/alacritty-and-fish.png b/assets/screenshots/alacritty-and-fish.png new file mode 100644 index 0000000..741c7ae Binary files /dev/null and b/assets/screenshots/alacritty-and-fish.png differ diff --git a/assets/screenshots/doomemacs.png b/assets/screenshots/doomemacs.png new file mode 100644 index 0000000..b481f63 Binary files /dev/null and b/assets/screenshots/doomemacs.png differ diff --git a/assets/screenshots/fastfetch-wizdesk.png b/assets/screenshots/fastfetch-wizdesk.png new file mode 100644 index 0000000..0a1b2c4 Binary files /dev/null and b/assets/screenshots/fastfetch-wizdesk.png differ diff --git a/assets/screenshots/full-system.png b/assets/screenshots/full-system.png new file mode 100644 index 0000000..b5000f2 Binary files /dev/null and b/assets/screenshots/full-system.png differ diff --git a/assets/screenshots/hyprland-active.png b/assets/screenshots/hyprland-active.png new file mode 100644 index 0000000..9f7240a Binary files /dev/null and b/assets/screenshots/hyprland-active.png differ diff --git a/assets/screenshots/hyprland-gaps.png b/assets/screenshots/hyprland-gaps.png new file mode 100644 index 0000000..65f0507 Binary files /dev/null and b/assets/screenshots/hyprland-gaps.png differ diff --git a/assets/screenshots/hyprland-inactive.png b/assets/screenshots/hyprland-inactive.png new file mode 100644 index 0000000..ddf018a Binary files /dev/null and b/assets/screenshots/hyprland-inactive.png differ diff --git a/assets/screenshots/neovim-dashboard.png b/assets/screenshots/neovim-dashboard.png new file mode 100644 index 0000000..b3f74a2 Binary files /dev/null and b/assets/screenshots/neovim-dashboard.png differ diff --git a/assets/screenshots/neovim-nix.png b/assets/screenshots/neovim-nix.png new file mode 100644 index 0000000..c8efe4c Binary files /dev/null and b/assets/screenshots/neovim-nix.png differ diff --git a/assets/screenshots/neovim-rust.png b/assets/screenshots/neovim-rust.png new file mode 100644 index 0000000..df20232 Binary files /dev/null and b/assets/screenshots/neovim-rust.png differ diff --git a/assets/screenshots/rofi.png b/assets/screenshots/rofi.png new file mode 100644 index 0000000..5bd81c3 Binary files /dev/null and b/assets/screenshots/rofi.png differ diff --git a/assets/screenshots/waybar.png b/assets/screenshots/waybar.png new file mode 100644 index 0000000..e024b03 Binary files /dev/null and b/assets/screenshots/waybar.png differ diff --git a/assets/sddm/Background.jpg b/assets/sddm/Background.jpg new file mode 100644 index 0000000..01fce54 Binary files /dev/null and b/assets/sddm/Background.jpg differ diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..8db5816 --- /dev/null +++ b/flake.lock @@ -0,0 +1,739 @@ +{ + "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1747864449, + "narHash": "sha256-PIjVAWghZhr3L0EFM2UObhX84UQxIACbON0IC0zzSKA=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "389372c5f4dc1ac0e7645ed29a35fd6d71672ef5", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "blink-cmp": { + "inputs": { + "fenix": "fenix", + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1748459806, + "narHash": "sha256-v8APYXznVC3TP9ZgIr+FGaoQ1rVnLOOOWkRprpcS1JI=", + "owner": "Saghen", + "repo": "blink.cmp", + "rev": "e7cdf1ac0be3acfce2a718bc921768ac747db5d9", + "type": "github" + }, + "original": { + "owner": "Saghen", + "repo": "blink.cmp", + "type": "github" + } + }, + "clipboard-sync": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731355357, + "narHash": "sha256-kTXsO+hskCfX36+Ez1fHu9SO54uUY2lofkrbMKE3Vrk=", + "owner": "dnut", + "repo": "clipboard-sync", + "rev": "943e49e0a9a16b54bbab3704e99b6cf6ad4ea19f", + "type": "github" + }, + "original": { + "owner": "dnut", + "repo": "clipboard-sync", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "blink-cmp", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1747032090, + "narHash": "sha256-htgrHIR/P7V8WeRW/XDWJHXBzbTSWCDYZHsxPAzDuUY=", + "owner": "nix-community", + "repo": "fenix", + "rev": "1436bb8b85b35ca3ba64ad97df31a3b23c7610a3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748529677, + "narHash": "sha256-MJEX3Skt5EAIs/aGHD8/aXXZPcceMMHheyIGSjvxZN0=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "da282034f4d30e787b8a10722431e8b650a907ef", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "hydractify-bot": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs_3", + "utils": "utils" + }, + "locked": { + "lastModified": 1744867268, + "narHash": "sha256-MZxEEq9FNJKtLg3Yz4e0Pf+8TRySj8xJ6vBszqt3fjg=", + "owner": "hydractify", + "repo": "hydractify-bot", + "rev": "263b8552a4dd161de58eb13dad93ec758718c828", + "type": "github" + }, + "original": { + "owner": "hydractify", + "repo": "hydractify-bot", + "type": "github" + } + }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1745948457, + "narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "ac903e80b33ba6a88df83d02232483d99f327573", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1745015490, + "narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "60754910946b4e2dc1377b967b7156cb989c5873", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_4", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems_2", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1748438403, + "narHash": "sha256-uNgR25LfmSOYQ1wNlC91UZ/avt+bmxZpwlqOYM6vI20=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "9bf1b491440eac6f9c0d6853013ad5666c12d1d9", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1743714874, + "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1737634706, + "narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "8810df502cdee755993cb803eba7b23f189db795", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1745951494, + "narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1747484975, + "narHash": "sha256-+LAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "163c83b3db48a17c113729c220a60b94596c9291", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1746635225, + "narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "674ea57373f08b7609ce93baff131117a0dfe70d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1747584298, + "narHash": "sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "e511882b9c2e1d7a75d45d8fddd2160daeafcbc3", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1721727458, + "narHash": "sha256-r/xppY958gmZ4oTfLiHN0ZGuQ+RSTijDblVgVLFi1mw=", + "owner": "nix-community", + "repo": "naersk", + "rev": "3fb418eaf352498f6b6c30592e3beb63df42ef11", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "naersk", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1736166416, + "narHash": "sha256-U47xeACNBpkSO6IcCm0XvahsVXpJXzjPIQG7TZlOToU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b30f97d8c32d804d2d832ee837d0f1ca0695faa5", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 0, + "narHash": "sha256-AlcmCXJZPIlO5dmFzV3V2XF6x/OpNWUV8Y/FMPGd8Z4=", + "path": "/nix/store/lsy6c2f9alj2gkjj36h754kk63x6701l-source", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1729850857, + "narHash": "sha256-WvLXzNNnnw+qpFOmgaM3JUlNEH+T4s22b5i2oyyCpXE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "41dea55321e5a999b17033296ac05fe8a8b5a257", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1748026106, + "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1748370509, + "narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "4faa5f5321320e49a78ae7848582f684d64783e9", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "blink-cmp": "blink-cmp", + "clipboard-sync": "clipboard-sync", + "home-manager": "home-manager", + "hydractify-bot": "hydractify-bot", + "hyprland": "hyprland", + "nixpkgs": "nixpkgs_5", + "spicetify-nix": "spicetify-nix" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1746889290, + "narHash": "sha256-h3LQYZgyv2l3U7r+mcsrEOGRldaK0zJFwAAva4hV/6g=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "2bafe9d96c6734aacfd49e115f6cf61e7adc68bc", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "spicetify-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1748147548, + "narHash": "sha256-9IaAQkgyF4PFtVyui8vF6oJah0iVcO9DaOefjdTMthE=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "f0595e3b59260457042450749eaec00a5a47db35", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "spicetify-nix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1745871725, + "narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..90e5815 --- /dev/null +++ b/flake.nix @@ -0,0 +1,98 @@ +{ + description = "NixOS System Flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + spicetify-nix = { + url = "github:Gerg-L/spicetify-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + clipboard-sync = { + url = "github:dnut/clipboard-sync"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + hyprland.url = "github:hyprwm/Hyprland"; + + hydractify-bot.url = "github:hydractify/hydractify-bot"; + + blink-cmp.url = "github:Saghen/blink.cmp"; + }; + + outputs = + { + home-manager, + nixpkgs, + ... + }@inputs: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + { + nixosConfigurations = { + wizdesk = + let + specialArgs = inputs; + modules = [ + ./hosts/wizdesk/nixos.nix + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = inputs; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.wizardlink = import ./hosts/wizdesk/home-manager.nix; + } + ]; + in + nixpkgs.lib.nixosSystem { inherit system specialArgs modules; }; + + wizlap = + let + specialArgs = inputs; + modules = [ + ./hosts/wizlap/nixos.nix + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = inputs; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.wizardlink = import ./hosts/wizlap/home-manager.nix; + } + ]; + in + nixpkgs.lib.nixosSystem { inherit system specialArgs modules; }; + }; + + formatter."${system}" = pkgs.nixfmt-rfc-style; + + packages."${system}" = { + lmms = pkgs.callPackage ./packages/lmms/package.nix { }; + miraclecast = pkgs.callPackage ./packages/miraclecast.nix { }; + wb32dfu-udev-rules = pkgs.callPackage ./packages/wb32dfu-udev-rules { }; + }; + + nixosModules = { + hyprland = import ./modules/hyprland/nixos.nix; + }; + + homeManagerModules = { + emacs = import ./modules/emacs; + hyprland = import ./modules/hyprland/home-manager.nix; + neovim = import ./modules/neovim; + }; + + templates.default = { + path = ./modules/template; + description = '' + A NixOS & Home-Manager template to get started with the https://github.com/wizardlink/linuxware configuration. + ''; + }; + }; +} diff --git a/hosts/README.md b/hosts/README.md new file mode 100644 index 0000000..c9c75ee --- /dev/null +++ b/hosts/README.md @@ -0,0 +1,15 @@ +## wizdesk + +My main machine, this is where I host everything that's accessible through the `thewizard.link` domain. + +### Specs + +![image](/assets/screenshots/fastfetch-wizdesk.png) + +## wizlap + +My ASUS Vivobook 15 (M1502IA), I mostly use it when I have to travel so there isn't much to say about it. + +### Specs + +They can be found in ASUS' store/support page, I haven't modified it yet. diff --git a/hosts/wizdesk/hardware-configuration.nix b/hosts/wizdesk/hardware-configuration.nix new file mode 100644 index 0000000..9a338bb --- /dev/null +++ b/hosts/wizdesk/hardware-configuration.nix @@ -0,0 +1,71 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/1f7083ba-4271-486e-a85c-8386f6287b0a"; + fsType = "btrfs"; + options = [ "subvol=root" ]; + }; + + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/1f7083ba-4271-486e-a85c-8386f6287b0a"; + fsType = "btrfs"; + options = [ "subvol=nix" ]; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/1f7083ba-4271-486e-a85c-8386f6287b0a"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/D4D7-CD5F"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + fileSystems."/mnt/internal" = + { device = "/dev/disk/by-uuid/b8541c0d-9146-4388-b217-431f196957cc"; + fsType = "ext4"; + }; + + fileSystems."/mnt/ssd" = + { device = "/dev/disk/by-uuid/f27f2224-d351-46fd-89f5-991de36166ad"; + fsType = "ext4"; + }; + + fileSystems."/mnt/extra" = + { device = "/dev/disk/by-uuid/0d4ef3e0-7e7a-4a70-bbbc-040fe7aa7c2a"; + fsType = "ext4"; + }; + + fileSystems."/mnt/media" = + { device = "/dev/disk/by-uuid/52c17b8b-46c1-4870-b86c-c3b9f4bd4434"; + fsType = "ext4"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/wizdesk/home-manager.nix b/hosts/wizdesk/home-manager.nix new file mode 100644 index 0000000..d9c9e48 --- /dev/null +++ b/hosts/wizdesk/home-manager.nix @@ -0,0 +1,160 @@ +{ pkgs, ... }: + +{ + # + ## HOME CONFIGURATION # + # + + # Import configurations for better modularity. + imports = [ + ../../modules/emacs + ../../modules/hyprland/home-manager.nix + ../../modules/neovim + ../../shared/home-manager + ./services/home-manager + ]; + + # Home Manager needs a bit of information about you and the paths it should + # manage. + home.username = "wizardlink"; + home.homeDirectory = "/home/wizardlink"; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "23.05"; # Please read the comment before changing. + + home.file = { + # Create wallpaper script to be read by the start_services.sh script. + ".local/share/scripts/wallpaper.sh" = { + executable = true; + text = # sh + '' + # + ## Start wallpaper daemon and set one. + # + OUTPUT_1="DP-2" + IMAGE_1="/mnt/internal/personal/wallpapers/edited/1440-bicycle.jpg" + + OUTPUT_2="DP-3" + IMAGE_2="/mnt/internal/personal/wallpapers/edited/1080-bycicle.jpg" + + function load_wallpapers() { + swww img -t any --transition-bezier 0.0,0.0,1.0,1.0 --transition-duration .8 --transition-step 255 --transition-fps 60 -o $OUTPUT_1 $IMAGE_1; + swww img -t any --transition-bezier 0.0,0.0,1.0,1.0 --transition-duration .8 --transition-step 255 --transition-fps 60 -o $OUTPUT_2 $IMAGE_2 + } + + if ! swww query; then + swww-daemon & + fi + + load_wallpapers & + ''; + }; + }; + + # + # PACKAGES # + # + + programs.direnv = { + config = { + whitelist = { + exact = [ "/home/wizardlink/.system" ]; + + prefix = [ + "/mnt/internal/hydractify/GitHub" + "/mnt/internal/personal/projects" + "/mnt/internal/personal/study" + "/mnt/internal/repos" + "/mnt/internal/shared/projects" + "/mnt/internal/shared/work" + ]; + }; + }; + }; + + home.packages = with pkgs; [ + # Games + pcsx2 + + # Creative work + easyeffects + + # Create an FHS environment using the command `fhs`, enabling the execution of non-NixOS packages in NixOS! + ( + let + base = appimageTools.defaultFhsEnvArgs; + in + buildFHSEnv ( + base + // { + name = "fhs"; + targetPkgs = + pkgs: + ( + # pkgs.buildFHSUserEnv provides only a minimal FHS environment, + # lacking many basic packages needed by most software. + # Therefore, we need to add them manually. + # + # pkgs.appimageTools provides basic packages required by most software. + (base.targetPkgs pkgs) + ++ (with pkgs; [ + nodejs + dotnet-sdk_8 + ]) + ); + profile = "export FHS=1"; + runScript = "bash"; + extraOutputsToInstall = [ "dev" ]; + } + ) + ) + ]; + + # + # MODULES # + # + + programs.neovim = { + enable = true; + + # Enable ollama support + ollama.enable = true; + }; + + modules.hyprland = { + # Enable scripts + scripts = { + startup.enable = true; + screenshot.enable = true; + }; + + # Enable hypridle + hypridle.enable = true; + + # Add monitor configuration to hyprland + extraConfig = # hyprlang + '' + # See https://wiki.hyprland.org/Configuring/Monitors/ + monitor = DP-3, 1920x1080@74.973, 2560x0, 1 + monitor = DP-2, 2560x1440@165.00301, 0x0, 1 + + # Bind workspaces to specific monitors + workspace = 1, monitor:DP-2 + workspace = 2, monitor:DP-3 + workspace = 3, monitor:DP-2 + workspace = 4, monitor:DP-3 + workspace = 5, monitor:DP-2 + workspace = 6, monitor:DP-3 + workspace = 7, monitor:DP-2 + workspace = 8, monitor:DP-3 + workspace = 9, monitor:DP-2 + workspace = 0, monitor:DP-3 + ''; + }; +} diff --git a/hosts/wizdesk/nixos.nix b/hosts/wizdesk/nixos.nix new file mode 100644 index 0000000..08ec555 --- /dev/null +++ b/hosts/wizdesk/nixos.nix @@ -0,0 +1,182 @@ +{ pkgs, config, ... }: + +{ + imports = [ + ../../modules/hyprland/nixos.nix + ../../shared/nixos + ./hardware-configuration.nix + ./services/nixos + ]; + + # + # NIXOS # + # + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.05"; + + # + # SYSTEM # + # + + # Configure options for mounted volumes. + fileSystems = { + "/".options = [ "compress=zstd" ]; + "/home".options = [ "compress=zstd" ]; + "/nix".options = [ + "compress=zstd" + "noatime" + ]; + "/mnt/extra".options = [ "nofail" ]; + "/mnt/internal".options = [ "nofail" ]; + "/mnt/media".options = [ "nofail" ]; + "/mnt/ssd".options = [ "nofail" ]; + }; + + # Enable btrf's auto scrubbing of volumes. + services.btrfs.autoScrub = { + enable = true; + interval = "weekly"; + fileSystems = [ "/" ]; + }; + + networking.hostName = "wizdesk"; # Define your hostname. + + # Open ports in the firewall. + networking.firewall = { + allowedTCPPorts = [ + 443 # SSL + 6567 # Mindustry + 80 # HTTP + 3979 # OpenTTD + 7777 # Terraria + ]; + + allowedUDPPorts = [ + 2626 # Dolphin emulator + 27015 # Source games + 28910 # Heretic II + 6567 # Mindustry + 8211 # Palworld + 3979 # OpenTTD + ]; + + allowedTCPPortRanges = [ + { + from = 1714; + to = 1764; + } # KDEConnect + ]; + allowedUDPPortRanges = [ + { + from = 1714; + to = 1764; + } # KDEConnect + ]; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.wizardlink = { + createHome = true; + description = "Alexandre Cavalheiro"; + extraGroups = [ + "docker" + "gamemode" + "libvirtd" + "networkmanager" + "openrazer" + "postgresql" + "wheel" + ]; + + initialPassword = "wizardlink"; + isNormalUser = true; + + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdGOyRbu6IOw9yqotxE6m7wCif7oP/2D0tlREa5Q6uo Alexandre Cavalheiro S. Tiago da Silva " + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIISfCUsZrnCMZapdrvkUCrdRiX+1xuZBdGrynNRzDI2v" # SpaceEEC + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPInBFp7zBLhFluoww65CZzcnMdhndTawBv8QYJ5s/Xt david.alejandro.rubio@gmail.com" # Kodehawa + ]; + }; + + # Set your time zone. + time.timeZone = "America/Sao_Paulo"; + + # Select internationalisation properties. + i18n = { + defaultLocale = "en_US.UTF-8"; + supportedLocales = [ + "C.UTF-8/UTF-8" + "en_GB.UTF-8/UTF-8" + "en_US.UTF-8/UTF-8" + "ja_JP.UTF-8/UTF-8" + "pt_BR.UTF-8/UTF-8" + ]; + + extraLocaleSettings = { + LANGUAGE = "en_US.UTF-8"; + LC_ADDRESS = "en_US.UTF-8"; + LC_ALL = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "pt_BR.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "pt_BR.UTF-8"; + LC_PAPER = "pt_BR.UTF-8"; + LC_TELEPHONE = "pt_BR.UTF-8"; + LC_TIME = "en_GB.UTF-8"; + }; + }; + + # + # HARDWARE # + # + + # Enable Zenergy + boot.initrd.kernelModules = [ + "zenergy" + ]; + boot.extraModulePackages = [ + config.boot.kernelPackages.zenergy + ]; + + # Enable openrazer for managing Razer products' configuration + hardware.openrazer = { + enable = true; + users = [ "wizardlink" ]; + }; + + services.udev = { + # Vial udev rule for Monsgeek M1 + extraRules = '' + # Monsgeek M1 + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="fffe", ATTRS{idProduct}=="0005", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" + ''; + + # WB32 DFU rules - needed for flashing + packages = [ (pkgs.callPackage ../../packages/wb32dfu-udev-rules { }) ]; + }; + + # enable a better driver for wireless xbox controllers. + hardware.xpadneo.enable = true; + + # + # PACKAGES # + # + + environment.systemPackages = with pkgs; [ + ## Tools + # Utilities + btrfs-progs + + ## Hardware specific + openrazer-daemon # Razor products back-end + polychromatic # and it's front-end + vial + ]; +} diff --git a/hosts/wizdesk/services/home-manager/default.nix b/hosts/wizdesk/services/home-manager/default.nix new file mode 100644 index 0000000..20b08f2 --- /dev/null +++ b/hosts/wizdesk/services/home-manager/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + imports = [ + ./hydractify-bot.nix + ./openttd.nix + ./terraria.nix + ]; +} diff --git a/hosts/wizdesk/services/home-manager/hydractify-bot.nix b/hosts/wizdesk/services/home-manager/hydractify-bot.nix new file mode 100644 index 0000000..f11cdb8 --- /dev/null +++ b/hosts/wizdesk/services/home-manager/hydractify-bot.nix @@ -0,0 +1,17 @@ +{ hydractify-bot, pkgs, ... }: + +{ + systemd.user.services.hydractify-bot = { + Install.WantedBy = [ "default.target" ]; + + Unit.Description = "Hydractify bot"; + Unit.After = "postgresql.service"; + + Service = { + ExecStart = "${hydractify-bot.defaultPackage.${pkgs.system}}/bin/hydractify"; + Restart = "on-failure"; + Type = "simple"; + WorkingDirectory = "/mnt/internal/hydractify/GitHub/hydractify"; + }; + }; +} diff --git a/hosts/wizdesk/services/home-manager/openttd.nix b/hosts/wizdesk/services/home-manager/openttd.nix new file mode 100644 index 0000000..6d0a1a4 --- /dev/null +++ b/hosts/wizdesk/services/home-manager/openttd.nix @@ -0,0 +1,53 @@ +{ + pkgs, + ... +}: + +{ + home.packages = with pkgs; [ + openttd + ]; + + systemd.user.services.openttd = { + Install.WantedBy = [ "default.target" ]; + + Unit.Description = "OpenTTD Tmux server"; + + Service = { + ExecStart = "${pkgs.tmux}/bin/tmux -L openttd new -s OpenTTD -d '${pkgs.openttd}/bin/openttd -g /home/wizardlink/.local/share/openttd/save/hyfy.sav -D'"; + ExecStop = "${pkgs.tmux}/bin/tmux kill-session -t OpenTTD"; + Restart = "on-failure"; + Type = "forking"; + }; + }; + + systemd.user.services.openttd-rcon = { + Install.WantedBy = [ "default.target" ]; + + Unit = { + Description = "OpenTTD RCON Password set"; + After = [ "openttd.service" ]; + }; + + Service = { + ExecStart = "${pkgs.tmux}/bin/tmux -L openttd send-keys -t OpenTTD 'rcon_pw aaaa' Enter"; + Type = "oneshot"; + }; + }; + + systemd.user.services.openttd-save = { + Install.WantedBy = [ "default.target" ]; + + Unit = { + Description = "OpenTTD RCON Password set"; + After = [ "openttd.service" ]; + }; + + Service = { + ExecStart = "${pkgs.tmux}/bin/tmux -L openttd send-keys -t OpenTTD 'save hyfy' Enter"; + Type = "simple"; + Restart = "always"; + RestartSec = "1800s"; + }; + }; +} diff --git a/hosts/wizdesk/services/home-manager/terraria.nix b/hosts/wizdesk/services/home-manager/terraria.nix new file mode 100644 index 0000000..9c134d1 --- /dev/null +++ b/hosts/wizdesk/services/home-manager/terraria.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: + +{ + systemd.user.services.terraria = { + Install.WantedBy = [ "default.target" ]; + + Unit.Description = "Terraria TMUX Server"; + + Service = { + ExecStart = "${pkgs.tmux}/bin/tmux -L terraria new -s Terraria -d /etc/profiles/per-user/wizardlink/bin/fhs -c 'dotnet ./tModLoader.dll -server -config serverconfig.txt'"; + ExecStop = "${pkgs.tmux}/bin/tmux kill-session -t Terraria"; + Restart = "on-failure"; + Type = "forking"; + WorkingDirectory = "/mnt/ssd/SteamLibrary/steamapps/common/tModLoader"; + }; + }; +} diff --git a/hosts/wizdesk/services/nixos/archi.nix b/hosts/wizdesk/services/nixos/archi.nix new file mode 100644 index 0000000..c47ec69 --- /dev/null +++ b/hosts/wizdesk/services/nixos/archi.nix @@ -0,0 +1,15 @@ +{ + services.archisteamfarm = { + enable = true; + web-ui.enable = true; + + bots.wizardlink = { + enabled = true; + username = "master1891891"; + + settings = { + OnlineStatus = 0; + }; + }; + }; +} diff --git a/hosts/wizdesk/services/nixos/caddy.nix b/hosts/wizdesk/services/nixos/caddy.nix new file mode 100644 index 0000000..fb1f983 --- /dev/null +++ b/hosts/wizdesk/services/nixos/caddy.nix @@ -0,0 +1,57 @@ +{ ... }: +{ + services.caddy = { + enable = true; + email = "contact@thewizard.link"; + + virtualHosts."thewizard.link".extraConfig = '' + redir https://github.com/wizardlink/ + header Strict-Transport-Security "max-age=63072000; includeSubDomains" + ''; + + virtualHosts."jellyfin.thewizard.link".extraConfig = '' + encode gzip + header X-Robots-Tag "none" + reverse_proxy 127.0.0.1:8096 { + flush_interval -1 + } + ''; + + virtualHosts."jellyseerr.thewizard.link".extraConfig = '' + header X-Robots-Tag "none" + reverse_proxy http://127.0.0.1:5055 + ''; + + virtualHosts."foundry.thewizard.link".extraConfig = '' + header X-Robots-Tag "none" + reverse_proxy 127.0.0.1:30000 { + flush_interval -1 + } + ''; + + virtualHosts."git.thewizard.link".extraConfig = '' + reverse_proxy 127.0.0.1:3788 + ''; + + virtualHosts."files.thewizard.link".extraConfig = '' + root * /srv/files + header X-Robots-Tag "none" + file_server + ''; + + virtualHosts."torrent.thewizard.link".extraConfig = '' + header X-Robots-Tag "none" + reverse_proxy 127.0.0.1:8144 + ''; + + virtualHosts."shoko.thewizard.link".extraConfig = '' + header X-Robots-Tag "none" + reverse_proxy 127.0.0.1:8111 + ''; + + virtualHosts."nixbin.thewizard.link".extraConfig = '' + header X-Robots-Tag "none" + reverse_proxy 127.0.0.1:7373 + ''; + }; +} diff --git a/hosts/wizdesk/services/nixos/default.nix b/hosts/wizdesk/services/nixos/default.nix new file mode 100644 index 0000000..fcdcf83 --- /dev/null +++ b/hosts/wizdesk/services/nixos/default.nix @@ -0,0 +1,12 @@ +{ ... }: + +{ + imports = [ + ./archi.nix + ./caddy.nix + ./forgejo.nix + ./jellyfin.nix + ./nix-serve.nix + ./postgresql.nix + ]; +} diff --git a/hosts/wizdesk/services/nixos/forgejo.nix b/hosts/wizdesk/services/nixos/forgejo.nix new file mode 100644 index 0000000..db98115 --- /dev/null +++ b/hosts/wizdesk/services/nixos/forgejo.nix @@ -0,0 +1,26 @@ +{ + services.forgejo = { + enable = true; + + lfs.enable = true; + + settings = { + server = { + HTTP_PORT = 3788; + LANDING_PAGE = "explore"; + ROOT_URL = "https://git.thewizard.link"; + }; + + ui = { + # HACK: Unfortunately we need to manually put files in /var/lib/forgejo/custom/public/assets/css + # so this will break in a new system. + DEFAULT_THEME = "catppuccin-frappe-lavender"; + THEMES = "forgejo-auto,forgejo-light,forgejo-dark,gitea-auto,gitea-light,gitea-dark,forgejo-auto-deuteranopia-protanopia,forgejo-light-deuteranopia-protanopia,forgejo-dark-deuteranopia-protanopia,forgejo-auto-tritanopia,forgejo-light-tritanopia,forgejo-dark-tritanopia,catppuccin-latte-rosewater,catppuccin-latte-flamingo,catppuccin-latte-pink,catppuccin-latte-mauve,catppuccin-latte-red,catppuccin-latte-maroon,catppuccin-latte-peach,catppuccin-latte-yellow,catppuccin-latte-green,catppuccin-latte-teal,catppuccin-latte-sky,catppuccin-latte-sapphire,catppuccin-latte-blue,catppuccin-latte-lavender,catppuccin-frappe-rosewater,catppuccin-frappe-flamingo,catppuccin-frappe-pink,catppuccin-frappe-mauve,catppuccin-frappe-red,catppuccin-frappe-maroon,catppuccin-frappe-peach,catppuccin-frappe-yellow,catppuccin-frappe-green,catppuccin-frappe-teal,catppuccin-frappe-sky,catppuccin-frappe-sapphire,catppuccin-frappe-blue,catppuccin-frappe-lavender,catppuccin-macchiato-rosewater,catppuccin-macchiato-flamingo,catppuccin-macchiato-pink,catppuccin-macchiato-mauve,catppuccin-macchiato-red,catppuccin-macchiato-maroon,catppuccin-macchiato-peach,catppuccin-macchiato-yellow,catppuccin-macchiato-green,catppuccin-macchiato-teal,catppuccin-macchiato-sky,catppuccin-macchiato-sapphire,catppuccin-macchiato-blue,catppuccin-macchiato-lavender,catppuccin-mocha-rosewater,catppuccin-mocha-flamingo,catppuccin-mocha-pink,catppuccin-mocha-mauve,catppuccin-mocha-red,catppuccin-mocha-maroon,catppuccin-mocha-peach,catppuccin-mocha-yellow,catppuccin-mocha-green,catppuccin-mocha-teal,catppuccin-mocha-sky,catppuccin-mocha-sapphire,catppuccin-mocha-blue,catppuccin-mocha-lavender"; + }; + + service = { + DISABLE_REGISTRATION = true; + }; + }; + }; +} diff --git a/hosts/wizdesk/services/nixos/jellyfin.nix b/hosts/wizdesk/services/nixos/jellyfin.nix new file mode 100644 index 0000000..c7e3f0a --- /dev/null +++ b/hosts/wizdesk/services/nixos/jellyfin.nix @@ -0,0 +1,36 @@ +{ pkgs, ... }: + +{ + services.jellyfin = { + enable = true; + openFirewall = true; + user = "wizardlink"; + package = pkgs.jellyfin.override { + jellyfin-web = pkgs.jellyfin-web.overrideAttrs ( + final: prev: { + installPhase = '' + runHook preInstall + + # Inject the skip intro button script. + sed -i "s###" dist/index.html + + mkdir -p $out/share + cp -a dist $out/share/jellyfin-web + + runHook postInstall + ''; + } + ); + }; + }; + + services.jellyseerr = { + enable = true; + openFirewall = true; + package = pkgs.jellyseerr.overrideAttrs ( + _final: _prev: { + dontCheckForBrokenSymlinks = true; + } + ); + }; +} diff --git a/hosts/wizdesk/services/nixos/nix-serve.nix b/hosts/wizdesk/services/nixos/nix-serve.nix new file mode 100644 index 0000000..6cef2fe --- /dev/null +++ b/hosts/wizdesk/services/nixos/nix-serve.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + services.nix-serve = { + enable = true; + port = 7373; + secretKeyFile = "/etc/keys/nixbin.thewizard.link-1"; + }; +} diff --git a/hosts/wizdesk/services/nixos/postgresql.nix b/hosts/wizdesk/services/nixos/postgresql.nix new file mode 100644 index 0000000..06ed2bb --- /dev/null +++ b/hosts/wizdesk/services/nixos/postgresql.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: + +{ + services.postgresql = { + enable = true; + + initialScript = pkgs.writeText "backend-initScript" '' + CREATE ROLE wizardlink WITH LOGIN SUPERUSER PASSWORD 'wizardlink' CREATEDB CREATEROLE REPLICATION; + CREATE DATABASE wizardlink; + GRANT ALL PRIVILEGES ON DATABASE wizardlink TO wizardlink; + ''; + }; +} diff --git a/hosts/wizlap/hardware-configuration.nix b/hosts/wizlap/hardware-configuration.nix new file mode 100644 index 0000000..3b29b09 --- /dev/null +++ b/hosts/wizlap/hardware-configuration.nix @@ -0,0 +1,53 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ + config, + lib, + pkgs, + modulesPath, + ... +}: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/796d5ad8-db83-4c4f-883d-2f1f4f1937de"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-94d233be-889a-46a4-9c20-b7f026980cbf".device = "/dev/disk/by-uuid/94d233be-889a-46a4-9c20-b7f026980cbf"; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/CA05-302F"; + fsType = "vfat"; + options = [ + "fmask=0022" + "dmask=0022" + ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.docker0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/wizlap/home-manager.nix b/hosts/wizlap/home-manager.nix new file mode 100644 index 0000000..12cf15e --- /dev/null +++ b/hosts/wizlap/home-manager.nix @@ -0,0 +1,144 @@ +{ pkgs, ... }: + +{ + # + ## HOME CONFIGURATION # + # + + # Import configurations for better modularity. + imports = [ + ../../modules/emacs + ../../modules/hyprland/home-manager.nix + ../../modules/neovim + ../../shared/home-manager + ]; + + # Home Manager needs a bit of information about you and the paths it should + # manage. + home.username = "wizardlink"; + home.homeDirectory = "/home/wizardlink"; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "23.05"; # Please read the comment before changing. + + home.file = { + # Create wallpaper script to be read by the start_services.sh script. + ".local/share/scripts/wallpaper.sh" = { + executable = true; + text = # sh + '' + # + ## Start wallpaper daemon and set one. + # + OUTPUT_1="eDP-1" + IMAGE_1="/home/wizardlink/Pictures/wallhaven-x6p3y3.jpg" + + function load_wallpapers() { + swww img -t any --transition-bezier 0.0,0.0,1.0,1.0 --transition-duration .8 --transition-step 255 --transition-fps 60 -o $OUTPUT_1 $IMAGE_1; + } + + if ! swww query; then + swww-daemon & + fi + + load_wallpapers & + ''; + }; + }; + + # + # PACKAGES # + # + + programs.direnv = { + config = { + whitelist = { + exact = [ "/home/wizardlink/.system" ]; + + prefix = [ + "/home/wizardlink/Documents/projects" + ]; + }; + }; + }; + + home.packages = with pkgs; [ + ## Tools + # Utilities + brightnessctl + + # Create an FHS environment using the command `fhs`, enabling the execution of non-NixOS packages in NixOS! + ( + let + base = appimageTools.defaultFhsEnvArgs; + in + buildFHSEnv ( + base + // { + name = "fhs"; + targetPkgs = + pkgs: + ( + # pkgs.buildFHSUserEnv provides only a minimal FHS environment, + # lacking many basic packages needed by most software. + # Therefore, we need to add them manually. + # + # pkgs.appimageTools provides basic packages required by most software. + (base.targetPkgs pkgs) + ++ (with pkgs; [ + ]) + ); + profile = "export FHS=1"; + runScript = "bash"; + extraOutputsToInstall = [ "dev" ]; + } + ) + ) + ]; + + # + # MODULES # + # + + # Enable neovim + programs.neovim = { + enable = true; + + # Enable ollama support + ollama.enable = true; + }; + + # Add monitor configuration to hyprland + modules.hyprland = { + # Enable scripts + scripts = { + startup.enable = true; + screenshot.enable = true; + }; + + # Add monitor configuration to hyprland + extraConfig = # hyprlang + '' + # See https://wiki.hyprland.org/Configuring/Monitors/ + monitor = eDP-1, 1920x1080@60.01, 0x0, 1 + + # Bind workspaces to specific monitors + workspace = 1, monitor:eDP-1 + workspace = 2, monitor:eDP-1 + workspace = 3, monitor:eDP-1 + workspace = 4, monitor:eDP-1 + workspace = 5, monitor:eDP-1 + workspace = 6, monitor:eDP-1 + workspace = 7, monitor:eDP-1 + workspace = 8, monitor:eDP-1 + workspace = 9, monitor:eDP-1 + workspace = 0, monitor:eDP-1 + ''; + }; +} diff --git a/hosts/wizlap/nixos.nix b/hosts/wizlap/nixos.nix new file mode 100644 index 0000000..61437fc --- /dev/null +++ b/hosts/wizlap/nixos.nix @@ -0,0 +1,118 @@ +{ config, ... }: + +{ + imports = [ + ../../modules/hyprland/nixos.nix + ../../shared/nixos + ./hardware-configuration.nix + ]; + + # + # NIXOS # + # + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.05"; + + # Consume my desktop's binary cache. This is specially useful since (in theory) + # I will always update the flake and desktop machine first, so when I pull the changes, + # my desktop will have all the binaries my laptop needs. + nix.settings.substituters = [ "http://192.168.0.100:7373" ]; + nix.settings.trusted-public-keys = [ + "wizdesk-1:2UvctPjiMwMs7r2r7VPvoPmh4OcUjY3JmaRDJnOTZY8=" + ]; + + # + # SYSTEM # + # + networking.hostName = "wizlap"; # Define your hostname. + + # Open ports in the firewall. + networking.firewall = { + allowedTCPPortRanges = [ + { + from = 1714; + to = 1764; + } # KDEConnect + ]; + allowedUDPPortRanges = [ + { + from = 1714; + to = 1764; + } # KDEConnect + ]; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.wizardlink = { + createHome = true; + description = "Alexandre Cavalheiro"; + extraGroups = [ + "docker" + "gamemode" + "libvirtd" + "networkmanager" + "openrazer" + "postgresql" + "wheel" + ]; + + initialPassword = "wizardlink"; + isNormalUser = true; + + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdGOyRbu6IOw9yqotxE6m7wCif7oP/2D0tlREa5Q6uo Alexandre Cavalheiro S. Tiago da Silva " + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIISfCUsZrnCMZapdrvkUCrdRiX+1xuZBdGrynNRzDI2v" # SpaceEEC + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPInBFp7zBLhFluoww65CZzcnMdhndTawBv8QYJ5s/Xt david.alejandro.rubio@gmail.com" # Kodehawa + ]; + }; + + # Set your time zone. + time.timeZone = "America/Sao_Paulo"; + + # Select internationalisation properties. + i18n = { + defaultLocale = "en_US.UTF-8"; + supportedLocales = [ + "C.UTF-8/UTF-8" + "en_GB.UTF-8/UTF-8" + "en_US.UTF-8/UTF-8" + "ja_JP.UTF-8/UTF-8" + "pt_BR.UTF-8/UTF-8" + ]; + + extraLocaleSettings = { + LANGUAGE = "en_US.UTF-8"; + LC_ADDRESS = "en_US.UTF-8"; + LC_ALL = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "pt_BR.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "pt_BR.UTF-8"; + LC_PAPER = "pt_BR.UTF-8"; + LC_TELEPHONE = "pt_BR.UTF-8"; + LC_TIME = "en_GB.UTF-8"; + }; + }; + + # + # HARDWARE # + # + + # Enable Zenergy + boot.initrd.kernelModules = [ + "zenergy" + ]; + boot.extraModulePackages = [ + config.boot.kernelPackages.zenergy + ]; + + # enable a better driver for wireless xbox controllers. + hardware.xpadneo.enable = true; +} diff --git a/modules/README.md b/modules/README.md new file mode 100644 index 0000000..63f1cb6 --- /dev/null +++ b/modules/README.md @@ -0,0 +1,10 @@ +This directory encompasses all modules/resources that are exported by this repository's flake. + +## Currently maintained modules + +- [hyprland](./hyprland) +- [neovim](./neovim) +- [emacs](./emacs) +- [template](./template) + +> _Be sure to click the hyperlinks for the relevant documentation._ diff --git a/modules/emacs/README.md b/modules/emacs/README.md new file mode 100644 index 0000000..ea139eb --- /dev/null +++ b/modules/emacs/README.md @@ -0,0 +1,6 @@ +This module has no options, it simply just adds the necessary packages to run +[DOOM Emacs](https://github.com/doomemacs/doomemacs) and writes contents inside [./doom](./doom) into `$XDG_CONFIG_HOME/doom`. + +## Screenshots + +![image](/assets/screenshots/doomemacs.png) diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix new file mode 100644 index 0000000..dd83dec --- /dev/null +++ b/modules/emacs/default.nix @@ -0,0 +1,33 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + # CORE + git + emacs + ripgrep + + # Optional for DOOM + clang + coreutils + fd + + pandoc # For org-pandoc + texliveFull # for latex conversions + (aspellWithDicts ( + dicts: with dicts; [ + en + pt_BR + ] + )) # for flyspell + gnuplot_qt # for plotting graphs + ledger # for accounting and org-ledger + gzip # Otherwise random errors occur from the onChange script + ]; + + # Neatly place the configuration files for doom in their right place. + xdg.configFile."doom" = { + source = ./doom; + recursive = true; + }; +} diff --git a/modules/emacs/doom/config.el b/modules/emacs/doom/config.el new file mode 100644 index 0000000..18d5583 --- /dev/null +++ b/modules/emacs/doom/config.el @@ -0,0 +1,111 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. It is optional. +(setq user-full-name "Alexandre Cavalheiro S. Tiago da Silva" + user-mail-address "contact@thewizard.link") + +;; Doom exposes five (optional) variables for controlling fonts in Doom: +;; +;; - `doom-font' -- the primary font to use +;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) +;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; - `doom-symbol-font' -- for symbols +;; - `doom-serif-font' -- for the `fixed-pitch-serif' face +;; +;; See 'C-h v doom-font' for documentation and more examples of what they +;; accept. For example: +;; +;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light) +;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13)) +;; +;; If you or Emacs can't find your font, use 'M-x describe-font' to look them +;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to +;; refresh your font settings. If Emacs still can't find your font, it likely +;; wasn't installed correctly. Font issues are rarely Doom issues! +(setq doom-font (font-spec :family "BlexMono Nerd Font" :size 16)) + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +(setq doom-theme 'catppuccin) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +(setq display-line-numbers-type 'relative) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +(setq org-directory "~/Documents/notes" + org-agenda-files (doom-files-in `(,org-directory, "~/Documents/zettelkasten") :type 'files :match "\\.org\\'")) + + +;; Whenever you reconfigure a package, make sure to wrap your config in an +;; `after!' block, otherwise Doom's defaults may override your settings. E.g. +;; +;; (after! PACKAGE +;; (setq x y)) +;; +;; The exceptions to this rule: +;; +;; - Setting file/directory variables (like `org-directory') +;; - Setting variables which explicitly tell you to set them before their +;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). +;; - Setting doom variables (which start with 'doom-' or '+'). +;; +;; Here are some additional functions/macros that will help you configure Doom. +;; +;; - `load!' for loading external *.el files relative to this one +;; - `use-package!' for configuring packages +;; - `after!' for running code after a package has loaded +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, +;; etc). +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. + +;; Set the tab size to 2 +(setq tab-width 2) + +;; Configure initial major mode for the scratch buffer +(setq initial-major-mode 'org-mode) + +;; Configure orm-roam +(setq org-roam-directory "~/Documents/zettelkasten") +(map! (:leader :desc "Opens a daily note through the calendar" :n "nrdF" #'org-roam-dailies-find-date)) + +(use-package! org-roam-ui + :after org-roam + :config + (setq org-roam-ui-sync-theme t + org-roam-ui-follow t + org-roam-ui-update-on-save t + org-roam-ui-open-on-start t)) + +;; Configure doom-themes with treemacs +(with-eval-after-load 'doom-themes + (doom-themes-treemacs-config)) + +;; Configure elfeed-org +(setq rmh-elfeed-org-files '("/home/wizardlink/Documents/notes/elfeed.org")) + +;; Set CLI options for ox-pandoc when generating PDFs from LaTeX, +;; ensuring that `latexmk` is used so we have proper citations. +(use-package ox-pandoc + :init + (setq org-pandoc-options-for-latex-pdf '((pdf-engine . "latexmk") + (pdf-engine-opt . "-bibtex") + (biblatex . t)))) diff --git a/.config/doom/init.el b/modules/emacs/doom/init.el similarity index 74% rename from .config/doom/init.el rename to modules/emacs/doom/init.el index b4827a6..fcafad3 100644 --- a/.config/doom/init.el +++ b/modules/emacs/doom/init.el @@ -4,8 +4,8 @@ ;; in. Remember to run 'doom sync' after modifying it! ;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's -;; documentation. There you'll find a "Module Index" link where you'll find -;; a comprehensive list of Doom's modules and what flags they support. +;; documentation. There you'll find a link to Doom's Module Index where all +;; of our modules are listed, including what flags they support. ;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or ;; 'C-c c k' for non-vim users) to view its documentation. This works on @@ -15,23 +15,25 @@ ;; directory (for easy access to its source code). (doom! :input + ;;bidi ; (tfel ot) thgir etirw uoy gnipleh ;;chinese ;;japanese ;;layout ; auie,ctsrnm is the superior home row :completion company ; the ultimate code completion backend + ;;(corfu +orderless) ; complete with cap(f), cape and a flying feather! ;;helm ; the *other* search engine for love and life ;;ido ; the other *other* search engine... - ;;(ivy +fuzzy) ; a search engine for love and life - (vertico +icons) ; the search engine of the future + ;;ivy ; a search engine for love and life + vertico ; the search engine of the future :ui ;;deft ; notational velocity for Emacs doom ; what makes DOOM look the way it does doom-dashboard ; a nifty splash screen for Emacs ;;doom-quit ; DOOM quit-message prompts when you quit Emacs - (emoji +unicode) ; 🙂 + ;;(emoji +unicode) ; 🙂 hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW ;;hydra indent-guides ; highlighted indent columns @@ -41,13 +43,11 @@ nav-flash ; blink cursor line after big motions ;;neotree ; a project drawer, like NERDTree for vim ophints ; highlight the region an operation acts on - (popup ; tame sudden yet inevitable temporary windows - +all - +defaults) + (popup +defaults) ; tame sudden yet inevitable temporary windows ;;tabs ; a tab bar for Emacs - (treemacs +lsp) ; a project drawer, like neotree but cooler + treemacs ; a project drawer, like neotree but cooler unicode ; extended unicode support for various languages - vc-gutter ; vcs diff in the fringe + (vc-gutter +pretty) ; vcs diff in the fringe vi-tilde-fringe ; fringe tildes to mark beyond EOB ;;window-select ; visually switch windows workspaces ; tab emulation, persistence & separate workspaces @@ -68,8 +68,8 @@ ;;word-wrap ; soft wrapping with language-aware indent :emacs - (dired +ranger) ; making dired pretty [functional] - (electric +icons) ; smarter, keyword-based electric-indent + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent ;;ibuffer ; interactive buffer management undo ; persistent, smarter undo for your inevitable mistakes vc ; version-control and Emacs, sitting in a tree @@ -77,47 +77,47 @@ :term ;;eshell ; the elisp shell that works everywhere ;;shell ; simple shell REPL for Emacs - ;;term ; basic terminal emulator for Emacs - vterm ; the best terminal emulation in Emacs + term ; basic terminal emulator for Emacs + ;;vterm ; the best terminal emulation in Emacs :checkers syntax ; tasing you for every semicolon you forget - (spell - +flyspell) ; FIXME tasing you for misspelling mispelling + (spell ; tasing you for misspelling mispelling + +aspell + +flyspell) ;;grammar ; tasing grammar mistake every you make :tools ;;ansible ;;biblio ; Writes a PhD for you (citation needed) - (debugger +lsp) ; FIXME stepping through code, to help you add bugs + ;;collab ; buffers with friends + ;;debugger ; FIXME stepping through code, to help you add bugs ;;direnv ;;docker - editorconfig ; let someone else argue about tabs vs spaces + editorconfig ; let someone else argue about tabs vs spaces ;;ein ; tame Jupyter notebooks with emacs (eval +overlay) ; run code, run (also, repls) - ;;gist ; interacting with github gists lookup ; navigate your code and its documentation - lsp - magit ; a git porcelain for Emacs - make ; run make tasks from Emacs + ;lsp ; M-x vscode + ;;magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs ;;pass ; password manager for nerds ;;pdf ; pdf enhancements ;;prodigy ; FIXME managing external services & code builders - rgb ; creating color strings - taskrunner ; taskrunner for all your projects + ;;taskrunner ; taskrunner for all your projects ;;terraform ; infrastructure as code ;;tmux ; an API for interacting with tmux tree-sitter ; syntax and parsing, sitting in a tree... ;;upload ; map local to remote projects via ssh/ftp :os - (:if IS-MAC macos) ; improve compatibility with macOS + (:if (featurep :system 'macos) macos) ; improve compatibility with macOS ;;tty ; improve the terminal Emacs experience :lang ;;agda ; types of types of types of types... ;;beancount ; mind the GAAP - (cc +lsp) ; C/C++/Obj-C madness + ;;(cc +lsp) ; C > C++ == 1 ;;clojure ; java with a lisp ;;common-lisp ; if you've seen one lisp, you've seen them all ;;coq ; proofs-as-programs @@ -126,44 +126,43 @@ ;;data ; config/data formats ;;(dart +flutter) ; paint ui and not much else ;;dhall - (elixir +lsp) ; erlang done right + ;;elixir ; erlang done right ;;elm ; care for a cup of TEA? emacs-lisp ; drown in parentheses ;;erlang ; an elegant language for a more civilized age ;;ess ; emacs speaks statistics ;;factor - ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) ;;faust ; dsp, but you get to keep your soul + ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) ;;fsharp ; ML stands for Microsoft's Language ;;fstar ; (dependent) types and (monadic) effects and Z3 - (gdscript +lsp) ; the language you waited for + ;;gdscript ; the language you waited for ;;(go +lsp) ; the hipster dialect ;;(graphql +lsp) ; Give queries a REST - ;;(haskell +dante) ; a language that's lazier than I am + ;;(haskell +lsp) ; a language that's lazier than I am ;;hy ; readability of scheme w/ speed of python ;;idris ; a language you can depend on - (json +lsp) ; At least it ain't XML - ;;(java +lsp) ; the poster child for carpal tunnel syndrome - (javascript +lsp) ; all(hope(abandon(ye(who(enter(here)))))) + ;;json ; At least it ain't XML + ;;(java +lsp) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) ;;julia ; a better, faster MATLAB ;;kotlin ; a better, slicker Java(Script) (latex ; writing papers in Emacs has never been so fun - +lsp - +cdlatex) ; math snippets - ;;lean - ;;factor - ledger ; an accounting system in Emacs - ;;(lua +lsp) ; one-based indices? one-based indices + +lsp + +cdlatex) + ;;lean ; for folks with too much to prove + ledger ; be audit you can be + ;;lua ; one-based indices? one-based indices markdown ; writing docs for people to ignore - nim ; python + lisp at the speed of c + ;;nim ; python + lisp at the speed of c ;;nix ; I hereby declare "nix geht mehr!" ;;ocaml ; an objective camel (org ; organize your plain life in plain text - +pretty ; adds flair to org mode - +gnuplot ; graph magic - +pandoc - +roam2) ; Enable org-roam v2 integration - ;;(php +lsp) ; perl's insecure younger brother + +gnuplot + +pandoc + +pretty + +roam2) + ;;php ; perl's insecure younger brother ;;plantuml ; diagrams for confusing people more ;;purescript ; javascript, but functional ;;python ; beautiful is better than ugly @@ -173,20 +172,20 @@ ;;rest ; Emacs as a REST client ;;rst ; ReST in peace ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() ;;scala ; java, but good - ;;scheme ; a fully conniving family of lisps + ;;(scheme +guile) ; a fully conniving family of lisps sh ; she sells {ba,z,fi}sh shells on the C xor ;;sml ;;solidity ; do you need a blockchain? No. ;;swift ; who asked for emoji variables? ;;terra ; Earth and Moon in alignment for performance. - (web +lsp) ; the tubes - (yaml +lsp) ; JSON, but readable + ;;web ; the tubes + ;;yaml ; JSON, but readable ;;zig ; C, but simpler :email - ;;(mu4e +gmail) + ;;(mu4e +org +gmail) ;;notmuch ;;(wanderlust +gmail) diff --git a/.config/doom/packages.el b/modules/emacs/doom/packages.el similarity index 57% rename from .config/doom/packages.el rename to modules/emacs/doom/packages.el index 6c251be..f7bb06c 100644 --- a/.config/doom/packages.el +++ b/modules/emacs/doom/packages.el @@ -7,64 +7,51 @@ ;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;(package! some-package) +;; (package! some-package) ;; To install a package directly from a remote git repo, you must specify a ;; `:recipe'. You'll find documentation on what `:recipe' accepts here: -;; https://github.com/raxod502/straight.el#the-recipe-format -;(package! another-package -; :recipe (:host github :repo "username/repo")) +;; https://github.com/radian-software/straight.el#the-recipe-format +;; (package! another-package +;; :recipe (:host github :repo "username/repo")) ;; If the package you are trying to install does not contain a PACKAGENAME.el ;; file, or is located in a subdirectory of the repo, you'll need to specify ;; `:files' in the `:recipe': -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) +;; (package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) ;; If you'd like to disable a package included with Doom, you can do so here ;; with the `:disable' property: -;(package! builtin-package :disable t) +;; (package! builtin-package :disable t) ;; You can override the recipe of a built in package without having to specify ;; all the properties for `:recipe'. These will inherit the rest of its recipe ;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) +;; (package! builtin-package :recipe (:nonrecursive t)) +;; (package! builtin-package-2 :recipe (:repo "myfork/package")) ;; Specify a `:branch' to install a package from a particular branch or tag. ;; This is required for some packages whose default branch isn't 'master' (which -;; our package manager can't deal with; see raxod502/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) +;; our package manager can't deal with; see radian-software/straight.el#279) +;; (package! builtin-package :recipe (:branch "develop")) ;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") +;; (package! builtin-package :pin "1a2b3c4d5e") + ;; Doom's packages are pinned to a specific commit and updated from release to ;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) +;; (unpin! pinned-package) ;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) +;; (unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) +;; (unpin! t) -;; Install and enable Discord RPC -(package! elcord) - -;; Install and enable Org Roam -(package! org-roam - :recipe (:host github :repo "org-roam/org-roam" - :files (:defaults "extensions/*"))) - -;; Install and enable powershell.el -(package! powershell) - -;; Install and enable graphviz-dot-mode -(package! graphviz-dot-mode) - -;; Install org-roam +;; Add org-roam-ui so I can see the node graph of my notes. (unpin! org-roam) (package! org-roam-ui) -;; Install org-reveal -(package! org-reveal) +;; Add catppuccin theme. +(package! catppuccin-theme) diff --git a/.config/doom/snippets/org-mode/daily b/modules/emacs/doom/snippets/org-mode/daily.org similarity index 100% rename from .config/doom/snippets/org-mode/daily rename to modules/emacs/doom/snippets/org-mode/daily.org diff --git a/.config/doom/templates/roam/daily.org b/modules/emacs/doom/templates/roam/daily.org similarity index 99% rename from .config/doom/templates/roam/daily.org rename to modules/emacs/doom/templates/roam/daily.org index bf02164..ae34e9a 100644 --- a/.config/doom/templates/roam/daily.org +++ b/modules/emacs/doom/templates/roam/daily.org @@ -23,4 +23,3 @@ ** Amazing things that happend ** What did you learn today? - diff --git a/modules/hyprland/README.md b/modules/hyprland/README.md new file mode 100644 index 0000000..2841664 --- /dev/null +++ b/modules/hyprland/README.md @@ -0,0 +1,50 @@ +The [NixOS] module installs [Hyprland] onto the system. + +Whilst the [Home Manager] module generates the dotfiles for [Hyprland] and optionally [hypridle]. + +It can be configured through `modules.hyprland`. + +## Module options + +### extraConfig + +`modules.hyprland.extraConfig` when set will be appended to the top of the configuration I generate, you can see where +that is [here](./home-manager.nix#L189). + +There are no monitors configured by default, so you should use this option to do so. + +### hypridle.enable + +Whether to configure and enable the [hypridle] package. Be mindful that it may not auto-start, I have yet to find why but +even though it configures to start after `graphical-session.target`, that isn't reached in Hyprland sometimes. + +### scripts.screenshot.enable + +When enabled it will create two script files in `$XDG_DATA_HOME/scripts/hyprland` and two keybinds for you to run these +scripts, allowing you to take screenshots of a region and the entire screen of your first monitor. + +### scripts.startup.enable + +Not my proudest option, this will add two packages containing a startup script for apps that I use in the daily & +services. If this module ever gets actually used by someone, then I'll refine it. + +## Visuals + +### Active window + +![image](/assets/screenshots/hyprland-active.png) + +### Inactive window + +![image](/assets/screenshots/hyprland-inactive.png) + +### Gaps + +![image](/assets/screenshots/hyprland-gaps.png) + + + +[hyprland]: https://hyprland.org/ +[hypridle]: https://github.com/hyprwm/hypridle +[home manager]: https://github.com/nix-community/home-manager +[nixos]: https://nixos.org diff --git a/modules/hyprland/home-manager.nix b/modules/hyprland/home-manager.nix new file mode 100644 index 0000000..7a2439e --- /dev/null +++ b/modules/hyprland/home-manager.nix @@ -0,0 +1,296 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.modules.hyprland; +in +{ + options.modules.hyprland = { + extraConfig = lib.mkOption { + type = lib.types.str; + default = ""; + example = # hyprlang + '' + monitor = DP-3, 1920x1080@74.973, 2560x0, 1 + monitor = DP-2, 2560x1440@165.00301, 0x0, 1 + ''; + description = "Configuration to be appended to my own."; + }; + + hypridle.enable = lib.mkEnableOption "hypridle"; + + scripts = { + screenshot.enable = lib.mkEnableOption "screenshot"; + startup.enable = lib.mkEnableOption "startup"; + }; + }; + + config = { + home.sessionVariables = { + NIXOS_OZONE_WL = "1"; + QT_QPA_PLATFORM = "wayland"; + }; + + xdg.configFile."hypr/frappe.conf".source = builtins.fetchurl { + url = "https://raw.githubusercontent.com/catppuccin/hyprland/main/themes/frappe.conf"; + sha256 = "1clw669i1n3dhawdw4clmjv75fy3smycb5iqk3sanzpr3y0i4vwx"; + }; + + # Enable hypridle + services.hypridle = lib.mkIf cfg.hypridle.enable { + enable = true; + + settings = { + listener = [ + { + timeout = 180; + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + ]; + }; + }; + + # Set-up the scripts for services and apps. + home.packages = lib.mkIf cfg.scripts.startup.enable [ + (import ./scripts/start_services.nix pkgs) + ]; + + # Then add the hyprland screenshot scripts. + xdg.dataFile = lib.mkIf cfg.scripts.screenshot.enable { + "scripts/hyprland/screenshot.sh".source = ./scripts/screenshot.sh; + "scripts/hyprland/screenshot_area.sh".source = ./scripts/screenshot_area.sh; + }; + + # Configure hyprland - we enable it in NixOS. + xdg.configFile."hypr/hyprland.conf".text = # hyprlang + '' + source = $HOME/.config/hypr/frappe.conf + ${cfg.extraConfig} + + # + # Please note not all available settings / options are set here. + # For a full list, see the wiki + # + + autogenerated = 0 # remove this line to remove the warning + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + + # Inject home-manager session variables + exec-once = /etc/profiles/per-user/wizardlink/etc/profile.d/hm-session-vars.sh + + # Start the core services of my desktop + exec-once = start_services + + # Set cursor size. + exec-once = hyprctl setcursor 24 + env = XCURSOR_SIZE, 24 + + # Source a file (multi-file configs) + # source = ~/.config/hypr/myColors.conf + + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + input { + kb_layout = + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + float_switch_override_focus = 1 + + accel_profile = flat + force_no_accel = true + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + tablet { + output = DP-2 + } + } + + general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 6 + gaps_out = 18 + border_size = 2 + col.active_border = $base $surface0 $green 45deg + col.inactive_border = $base $surface0 $blue 45deg + + layout = dwindle + } + + decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 8 + + blur { + enabled = true + size = 8 + passes = 1 + new_optimizations = true + } + + shadow { + enabled = true + range = 4 + render_power = 3 + color = $crust + } + } + + animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default + } + + dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this + } + + master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_status = slave + } + + gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off + } + + # Example windowrule v1 + # windowrule = float, ^(kitty)$ + # Example windowrule v2 + # windowrule = float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + $mainMod = SUPER + + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + bind = $mainMod CTRL, F, fullscreenstate, -1 2 + bind = $mainMod CTRL, L, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy + bind = $mainMod CTRL, P, exec, ~/.local/share/scripts/hyprland/screenshot_area.sh + bind = $mainMod CTRL, V, pin + bind = $mainMod SHIFT, F, fullscreen, 1 + bind = $mainMod SHIFT, P, exec, ~/.local/share/scripts/hyprland/screenshot.sh + bind = $mainMod, C, killactive + bind = $mainMod, E, exec, thunar + bind = $mainMod, F, fullscreen + bind = $mainMod, M, exit + bind = $mainMod, O, togglesplit # dwindle + bind = $mainMod, P, pseudo # dwindle + bind = $mainMod, Q, exec, alacritty + bind = $mainMod, R, exec, rofi -show drun + bind = $mainMod, V, togglefloating + + # Move focus with mainMod + arrow keys + bind = $mainMod, H, movefocus, l + bind = $mainMod, L, movefocus, r + bind = $mainMod, K, movefocus, u + bind = $mainMod, J, movefocus, d + + # Switch workspaces with mainMod + [0-9] + bind = $mainMod, 1, workspace, 1 + bind = $mainMod, 2, workspace, 2 + bind = $mainMod, 3, workspace, 3 + bind = $mainMod, 4, workspace, 4 + bind = $mainMod, 5, workspace, 5 + bind = $mainMod, 6, workspace, 6 + bind = $mainMod, 7, workspace, 7 + bind = $mainMod, 8, workspace, 8 + #bind = $mainMod, 9, workspace, 9 + #bind = $mainMod, 0, workspace, 10 + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + bind = $mainMod SHIFT, 1, movetoworkspace, 1 + bind = $mainMod SHIFT, 2, movetoworkspace, 2 + bind = $mainMod SHIFT, 3, movetoworkspace, 3 + bind = $mainMod SHIFT, 4, movetoworkspace, 4 + bind = $mainMod SHIFT, 5, movetoworkspace, 5 + bind = $mainMod SHIFT, 6, movetoworkspace, 6 + bind = $mainMod SHIFT, 7, movetoworkspace, 7 + bind = $mainMod SHIFT, 8, movetoworkspace, 8 + bind = $mainMod SHIFT, 9, movetoworkspace, 9 + bind = $mainMod SHIFT, 0, movetoworkspace, 10 + + # Scroll through existing workspaces with mainMod + scroll + bind = $mainMod, mouse_down, workspace, e+1 + bind = $mainMod, mouse_up, workspace, e-1 + + # Move/resize windows with mainMod + LMB/RMB and dragging + bind = $mainMod SHIFT, H, movewindow, l + bind = $mainMod SHIFT, L, movewindow, r + bind = $mainMod SHIFT, K, movewindow, u + bind = $mainMod SHIFT, J, movewindow, d + bind = $mainMod ALT, H, resizeactive, -5% 0 + bind = $mainMod ALT, L, resizeactive, 5% 0 + bind = $mainMod ALT, K, resizeactive, 0 -5% + bind = $mainMod ALT, J, resizeactive, 0 5% + bindm = $mainMod, mouse:272, movewindow + bindm = $mainMod, mouse:273, resizewindow + + # Volume changes + binde = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%+ + binde = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 1%- + bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + + # Passthrough binds + bind = SHIFT CTRL, F12, pass, class:^(com\.obsproject\.Studio)$ + + # Window rules for xwaylandvideobridge + windowrule = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$ + windowrule = noanim,class:^(xwaylandvideobridge)$ + windowrule = nofocus,class:^(xwaylandvideobridge)$ + windowrule = noinitialfocus,class:^(xwaylandvideobridge)$ + + # Rules for windowkill + windowrule = tag +windowkill, class:^(steam_app_2726450)$ + windowrule = noborder, tag:windowkill + windowrule = pin, tag:windowkill + windowrule = opacity 0.9, tag:windowkill + + # Rules for Awakened PoE + windowrule = tag +poe, class:^(steam_app_238960)$ + windowrule = allowsinput, tag:poe + + windowrule = tag +apt, class:^(awakened-poe-trade)$ + windowrule = float, tag:apt + windowrule = noblur, tag:apt + windowrule = noborder, tag:apt + windowrule = noshadow, tag:apt + + # Rules for anki + windowrule = float, class:^(anki)$ + + windowrule = tag +gw2, class:^(steam_app_1284210)$ + windowrule = noblur, tag:gw2 + windowrule = noborder, tag:gw2 + + # Rules for godot + windowrule = tag +godot, class:^(Godot)$, title:^(.+)$ + windowrule = center, tag:godot + windowrule = size 50% 50%, tag:godot + ''; + }; +} diff --git a/modules/hyprland/nixos.nix b/modules/hyprland/nixos.nix new file mode 100644 index 0000000..de80852 --- /dev/null +++ b/modules/hyprland/nixos.nix @@ -0,0 +1,26 @@ +{ pkgs, hyprland, ... }: + +let + hyprland-pkgs = hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}; +in +{ + # Enable Hyprland's cachix + nix.settings.substituters = [ "https://hyprland.cachix.org" ]; + nix.settings.trusted-public-keys = [ + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + ]; + + # Enable Hyprland + programs.hyprland = { + enable = true; + + package = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + portalPackage = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; + }; + + # Overwrite the Mesa packages with Hyprland's for consitency + hardware.graphics = { + package = hyprland-pkgs.mesa; + package32 = hyprland-pkgs.pkgsi686Linux.mesa; + }; +} diff --git a/modules/hyprland/scripts/screenshot.sh b/modules/hyprland/scripts/screenshot.sh new file mode 100755 index 0000000..e5e91cc --- /dev/null +++ b/modules/hyprland/scripts/screenshot.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +FILE_PATH="/mnt/internal/personal/screenshots/$(date +'%Y-%m-%d_%H-%M-%S').png" + +grim -t png -o DP-2 $FILE_PATH +wl-copy <$FILE_PATH diff --git a/modules/hyprland/scripts/screenshot_area.sh b/modules/hyprland/scripts/screenshot_area.sh new file mode 100755 index 0000000..e2b6163 --- /dev/null +++ b/modules/hyprland/scripts/screenshot_area.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +FILE_PATH="/mnt/internal/personal/screenshots/$(date +'%Y-%m-%d_%H-%M-%S').png" + +grim -t png -g "$(slurp -w 0 -b '#6E738D77')" $FILE_PATH +wl-copy <$FILE_PATH diff --git a/modules/hyprland/scripts/start_services.nix b/modules/hyprland/scripts/start_services.nix new file mode 100644 index 0000000..068368d --- /dev/null +++ b/modules/hyprland/scripts/start_services.nix @@ -0,0 +1,59 @@ +pkgs: + +pkgs.writeShellScriptBin "start_services" '' + # + # Make sure xdg-desktop-portal-hyprland has access to what it needs + # + dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP & + + # + # Start waybar. + # + waybar & + + + # + # Start wallpaper daemon + # + ~/.local/share/scripts/wallpaper.sh & + + # + # Start notification daemon. + # + mako & + + # + # Start polkit agent + # + ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1 & + + # + # Start kwallet service + # + kwalletd6 & + + # + # Start kdeconnect daemon + # + kdeconnectd & + + # + # Start Fcitx5 + # + fcitx5 & + + # + # Start the blueman applet for managing bluetooth devices + # + blueman-applet & + + # + # Clipboard manager + # + ${pkgs.wl-clipboard}/bin/wl-paste --watch cliphist store & + + # + # Service that syncs X11 and Wayland clipboards + # + clipboard-sync +'' diff --git a/modules/neovim/README.md b/modules/neovim/README.md new file mode 100644 index 0000000..6e917b5 --- /dev/null +++ b/modules/neovim/README.md @@ -0,0 +1,42 @@ +This module generates dotfiles for [neovim]. + +The module extends `programs.neovim`. + +## Module options + +### programs.neovim.flakePath + +The location of your system's flake, [nixd] will execute an expression defined in the LSP's configuration that reads +the flake's contents to evaluate [NixOS] and [Home Manager] options. + +This setting is optional since other programs might force you to set the `FLAKE` environment variable; if this is not +set by the time you open [neovim] it will spout an error, impeding critical plugins from starting. + +### programs.neovim.ollama.enable + +Whether to add an [ollama] package to be used with [ollama.nvim](https://github.com/nomnivore/ollama.nvim). + +### programs.neovim.ollama.type + +The type of [ollama] package to be added, valid options are: `amd`, `nvidia` or `cpu`. + +## My neovim failed because of package X not existing + +My configuration is based off of `nixos-unstable` so sometimes your package may not exist or have a different name, I +apologise for that but I don't plan on maintaining backwards compatibility. :( + +## How it looks + +Here's some screenshots of how it currently looks like: + +![image](/assets/screenshots/neovim-dashboard.png) +![image](/assets/screenshots/neovim-nix.png) +![image](/assets/screenshots/neovim-rust.png) + +The theme I'm using is [catppuccin](https://github.com/catppuccin) in case you're curious. + +[neovim]: https://neovim.io/ +[Home Manager]: https://github.com/nix-community/home-manager +[nixos]: https://nixos.org +[nixd]: https://github.com/nix-community/nixd/ +[ollama]: https://ollama.com/ diff --git a/modules/neovim/default.nix b/modules/neovim/default.nix new file mode 100644 index 0000000..163fad1 --- /dev/null +++ b/modules/neovim/default.nix @@ -0,0 +1,160 @@ +{ + config, + pkgs, + lib, + blink-cmp, + ... +}: + +let + inherit (lib) + types + mkOption + mkIf + mkEnableOption + ; + + ollamaPackage = mkIf config.programs.neovim.ollama.enable ( + if config.programs.neovim.ollama.type == "amd" then + pkgs.ollama-rocm + else if config.programs.neovim.ollama.type == "nvidia" then + pkgs.ollama-cuda + else + pkgs.ollama + ); +in +{ + options.programs.neovim = { + flakePath = mkOption { + default = null; + description = "The path to your flake, this will be the value of the `FLAKE` environment variable."; + example = "~/.config/nix"; + type = types.nullOr types.str; + }; + + ollama = { + enable = mkEnableOption "enable"; + type = mkOption { + default = "amd"; + description = "The type of ollama package to install, accelerated by an AMD GPU, NVIDIA GPU or CPU."; + example = "amd"; + type = types.enum [ + "amd" + "nvidia" + "cpu" + ]; + }; + }; + }; + + config = { + home.sessionVariables = + { + EDITOR = "nvim"; + MANPAGER = "nvim +Man!"; + } + // lib.optionalAttrs (config.programs.neovim.flakePath != null) { + FLAKE = config.programs.neovim.flakePath; + }; + + programs.neovim = { + withNodeJs = true; + withPython3 = true; + + extraLuaConfig = builtins.readFile ./init.lua; + + extraPackages = + with pkgs; + [ + # Needed by LuaSnip + luajitPackages.jsregexp + + # Treesitter + gcc # For compiling languages + + # CMAKE + neocmakelsp + + # C/C++ + clang-tools + vscode-extensions.ms-vscode.cpptools + + # C# + #csharp-ls Testing roslyn.nvim + roslyn-ls + rzls + csharpier + netcoredbg + + # HTML/CSS/JSON + emmet-ls + vscode-langservers-extracted + + # LUA + lua-language-server + stylua + + # Markdown + markdownlint-cli + marksman + + # Nix + deadnix + nixd + nixfmt-rfc-style + statix + + # Python + basedpyright + python312Packages.flake8 + ruff + + # TypeScript/JavaScript + vtsls + deno + vscode-js-debug + + # Rust + rust-analyzer + cargo # Needed by blink-cmp + taplo + vscode-extensions.vadimcn.vscode-lldb + + # Vue + prettierd + vue-language-server + + # Svelte + nodePackages.svelte-language-server + + # YAML + yaml-language-server + ] + ++ pkgs.lib.optionals config.programs.neovim.ollama.enable [ + # Needed by ollama.nvim + curl + ollamaPackage + ]; + }; + + xdg.configFile."nvim/lua" = { + recursive = true; + source = ./lua; + }; + + xdg.configFile."nvim/queries" = { + recursive = true; + source = ./queries; + }; + + xdg.configFile."nvim/ftplugin" = { + recursive = true; + source = ./ftplugin; + }; + + xdg.dataFile."nvim/lazy/blink.cmp/target/release/libblink_cmp_fuzzy.so" = { + recursive = true; + source = "${blink-cmp.packages.${pkgs.system}.blink-fuzzy-lib}/lib/libblink_cmp_fuzzy.so"; + }; + }; +} diff --git a/modules/neovim/ftplugin/cs.lua b/modules/neovim/ftplugin/cs.lua new file mode 100644 index 0000000..f7b5880 --- /dev/null +++ b/modules/neovim/ftplugin/cs.lua @@ -0,0 +1,160 @@ +---@class CSFTPlugin.Project +---@field dll_path string +---@field name string +---@field project_path string +---@field target_framework string + +---@class CSFTPlugin.LaunchOptions: dap.Configuration +---@field cwd string? +---@field program (fun(): thread)? + +---@class CSFTPlugin +---@field dotnet_cmd string? +---@field launch_options CSFTPlugin.LaunchOptions? +local M = { + dotnet_cmd = vim.fn.exepath "dotnet", + launch_options = { + name = "Launch project DLL", + request = "launch", + type = "netcoredbg", + }, +} + +---@param command string The shell command to execute +---@return string[] +function M.cmd(command) + -- execute command + local exec_return = vim.fn.execute("!" .. command) + + -- get the output by line + local output = vim.tbl_filter( + ---@param item string + ---@return boolean + function(item) + if item == "" then + return false + else + return true + end + end, + vim.split(exec_return, "[\n]") + ) + + -- remove echo line (":!") + table.remove(output, 1) + + return output +end + +---@return CSFTPlugin.Project[] +function M.find_projects() + ---@type CSFTPlugin.Project[] + local projects = {} + + local csproj_extension = ".csproj" + + local csproj_files = M.cmd("find . -name '*" .. csproj_extension .. "'") + + for _, file_path in ipairs(csproj_files) do + local sub_start, sub_end = string.find(file_path, "%w+%" .. csproj_extension) + + local project_name = string.sub(file_path, sub_start or 1, sub_end - #csproj_extension) + local project_path = vim.fn.simplify(vim.fn.getcwd() .. "/" .. string.sub(file_path, 1, sub_start - 1)) + + local target_framework = M.cmd("rg -e 'TargetFramework>(.*)<' -r '$1' -o " .. file_path)[1] + + projects[#projects + 1] = { + dll_path = project_path .. "bin/Debug/" .. target_framework .. "/" .. project_name .. ".dll", + name = project_name, + project_path = project_path, + target_framework = target_framework, + } + end + + return projects +end + +---@param command string The dotnet CLI command to run +---@return string[] +function M:run(command) + return M.cmd(self.dotnet_cmd .. " " .. command) +end + +---@return boolean +function M:check_version() + local cmd_output = self:run "--version" + + local sub_start = string.find(cmd_output[1], "%d+%.%d+%.%d+") + if not sub_start then + return false + end + + return true +end + +---@return thread +function M:choose_dll() + self.projects = self.find_projects() + + local dap = require "dap" + + return coroutine.create(function(search_coroutine) + vim.ui.select( + self.projects, + { + prompt = "Select project to debug:", + ---@param item CSFTPlugin.Project + ---@return string + format_item = function(item) + return item.name + end, + }, + ---@param item CSFTPlugin.Project + function(item) + local path = item and item.dll_path or dap.ABORT + + if path ~= dap.ABORT then + self:run "build" + self.launch_options.cwd = item.project_path + end + + coroutine.resume(search_coroutine, path) + end + ) + end) +end + +function M:start() + local has_dotnet = self:check_version() + + if not has_dotnet then + vim.notify_once("dotnet executable not present of malfunctioning", vim.log.levels.ERROR) + return + end + + vim.fn.setenv("DOTNET_ENVIRONMENT", "Development") + + local debugger_path = vim.fn.get_nix_store "netcoredbg" .. "/bin/netcoredbg" + + local dap = require "dap" + + ---@type dap.ExecutableAdapter + dap.adapters.netcoredbg = { + type = "executable", + command = debugger_path, + args = { "--interpreter=vscode" }, + } + + self.launch_options.program = function() + return self:choose_dll() + end + + ---@type dap.Configuration[] + dap.configurations.cs = { self.launch_options } + + vim.g.loaded_csftplugin = true +end + +if not vim.g.loaded_csftplugin then + M:start() +end diff --git a/modules/neovim/init.lua b/modules/neovim/init.lua new file mode 100644 index 0000000..d59bf57 --- /dev/null +++ b/modules/neovim/init.lua @@ -0,0 +1,23 @@ +-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution +-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk. +local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim" +if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then + -- stylua: ignore + vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", + lazypath }) +end +vim.opt.rtp:prepend(lazypath) + +-- validate that lazy is available +if not pcall(require, "lazy") then + -- stylua: ignore + vim.api.nvim_echo( + { { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, + true, {}) + vim.fn.getchar() + vim.cmd.quit() +end + +require "util" +require "lazy_setup" +require "polish" diff --git a/modules/neovim/lua/community.lua b/modules/neovim/lua/community.lua new file mode 100644 index 0000000..b752202 --- /dev/null +++ b/modules/neovim/lua/community.lua @@ -0,0 +1,36 @@ +-- AstroCommunity: import any community modules here +-- We import this file in `lazy_setup.lua` before the `plugins/` folder. +-- This guarantees that the specs are processed before any user plugins. + +---@type LazySpec +return { + "AstroNvim/astrocommunity", + { import = "astrocommunity.colorscheme.catppuccin" }, + + { import = "astrocommunity.media.vim-wakatime" }, + + { import = "astrocommunity.editing-support.todo-comments-nvim" }, + + { import = "astrocommunity.motion.flit-nvim" }, + { import = "astrocommunity.motion.mini-ai" }, + { import = "astrocommunity.motion.mini-surround" }, + + { import = "astrocommunity.recipes.astrolsp-no-insert-inlay-hints" }, + { import = "astrocommunity.recipes.diagnostic-virtual-lines-current-line" }, + + { import = "astrocommunity.test.neotest" }, + + { import = "astrocommunity.pack.cmake" }, + { import = "astrocommunity.pack.cpp" }, + -- { import = "astrocommunity.pack.cs" }, Trying out roslyn.nvim + { import = "astrocommunity.pack.godot" }, + { import = "astrocommunity.pack.html-css" }, + { import = "astrocommunity.pack.json" }, + { import = "astrocommunity.pack.lua" }, + { import = "astrocommunity.pack.markdown" }, + { import = "astrocommunity.pack.rust" }, + { import = "astrocommunity.pack.toml" }, + { import = "astrocommunity.pack.typescript-all-in-one" }, + { import = "astrocommunity.pack.vue" }, + { import = "astrocommunity.pack.yaml" }, +} diff --git a/modules/neovim/lua/lazy_setup.lua b/modules/neovim/lua/lazy_setup.lua new file mode 100644 index 0000000..6a5b557 --- /dev/null +++ b/modules/neovim/lua/lazy_setup.lua @@ -0,0 +1,31 @@ +require("lazy").setup({ + { + "AstroNvim/AstroNvim", + version = "^5", -- Remove version tracking to elect for nighly AstroNvim + import = "astronvim.plugins", + opts = { -- AstroNvim options must be set here with the `import` key + mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up + maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up + icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available) + pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override + }, + }, + { import = "community" }, + { import = "plugins" }, +} --[[@as LazySpec]], { + -- Configure any other `lazy.nvim` configuration options here + install = { colorscheme = { "astrodark", "habamax" } }, + ui = { backdrop = 100 }, + performance = { + rtp = { + -- disable some rtp plugins, add more to your liking + disabled_plugins = { + "gzip", + "netrwPlugin", + "tarPlugin", + "tohtml", + "zipPlugin", + }, + }, + }, +} --[[@as LazyConfig]]) diff --git a/modules/neovim/lua/plugins/astrocore.lua b/modules/neovim/lua/plugins/astrocore.lua new file mode 100644 index 0000000..2eebb64 --- /dev/null +++ b/modules/neovim/lua/plugins/astrocore.lua @@ -0,0 +1,90 @@ +-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more! +-- Configuration documentation can be found with `:h astrocore` +-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) +-- as this provides autocomplete and documentation while editing + +---@type LazySpec +return { + "AstroNvim/astrocore", + ---@type AstroCoreOpts + opts = { + -- Configure core features of AstroNvim + features = { + autopairs = true, -- enable autopairs at start + cmp = true, -- enable completion at start + diagnostics = true, -- enable diagnostics at start + highlighturl = true, -- highlight URLs at start + notifications = true, -- enable notifications at start + large_buf = { -- set global limits for large files for disabling features like treesitter + size = 1024 * 100, + lines = 10000, + line_length = 1000, + }, + }, + -- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on + diagnostics = { + underline = true, + update_in_insert = false, + virtual_lines = { current_line = true }, + virtual_text = true, + }, + -- vim options can be configured here + options = { + opt = { -- vim.opt. + autoindent = true, -- indents automatically based on context + expandtab = true, -- use spaces instead of tabs + grepprg = "rg --vimgrep", -- use ripgrep on grep actions + number = true, -- sets vim.opt.number + relativenumber = true, -- sets vim.opt.relativenumber + shiftwidth = 2, -- how many spaces after indentation + signcolumn = "auto", -- sets vim.opt.signcolumn to auto + smartindent = true, -- smartly indent + spell = false, -- sets vim.opt.spell + tabstop = 2, -- how many spaces to indent when pressing tab + wrap = false, -- sets vim.opt.wrap + }, + g = { -- vim.g. + -- configure global vim variables (vim.g) + -- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup` + -- This can be found in the `lua/lazy_setup.lua` file + }, + }, + -- Mappings can be configured through AstroCore as well. + -- NOTE: keycodes follow the casing in the vimdocs. For example, `` must be capitalized + mappings = { + -- first key is the mode + n = { + -- second key is the lefthand side of the map + + -- navigate buffer tabs with `H` and `L` + -- L = { + -- function() require("astrocore.buffer").nav(vim.v.count > 0 and vim.v.count or 1) end, + -- desc = "Next buffer", + -- }, + -- H = { + -- function() require("astrocore.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1)) end, + -- desc = "Previous buffer", + -- }, + + -- mappings seen under group name "Buffer" + ["bD"] = { + function() + require("astroui.status.heirline").buffer_picker(function(bufnr) + require("astrocore.buffer").close(bufnr) + end) + end, + desc = "Pick to close", + }, + -- tables with just a `desc` key will be registered with which-key if it's installed + -- this is useful for naming menus + ["b"] = { desc = "Buffers" }, + -- quick save + -- [""] = { ":w!", desc = "Save File" }, -- change description but the same command + }, + t = { + -- setting a mapping to false will disable it + -- [""] = false, + }, + }, + }, +} diff --git a/modules/neovim/lua/plugins/astrolsp.lua b/modules/neovim/lua/plugins/astrolsp.lua new file mode 100644 index 0000000..8fe0e4e --- /dev/null +++ b/modules/neovim/lua/plugins/astrolsp.lua @@ -0,0 +1,223 @@ +-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine +-- Configuration documentation can be found with `:h astrolsp` +-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) +-- as this provides autocomplete and documentation while editing + +---@type LazySpec +return { + "AstroNvim/astrolsp", + ---@param opts AstroLSPOpts + ---@return AstroLSPOpts + opts = function(_, opts) + local system_flake_path = os.getenv "FLAKE" + or os.getenv "NH_FLAKE" + or error "FLAKE environment variable must be set." + local hostname = vim.fn.hostname() + + ---@type AstroLSPOpts + local lsp_options = { + -- Configuration table of features provided by AstroLSP + features = { + codelens = true, -- enable/disable codelens refresh on start + inlay_hints = true, -- enable/disable inlay hints on start + semantic_tokens = true, -- enable/disable semantic token highlighting + signature_help = false, -- enable/disable automatic signature help + }, + -- customize lsp formatting options + formatting = { + -- control auto formatting on save + format_on_save = { + enabled = true, -- enable or disable format on save globally + allow_filetypes = { -- enable format on save for specified filetypes only + -- "go", + "c", + "cpp", + "cs", + "gdscript", + "h", + "javascript", + "jsx", + "lua", + "nix", + "rust", + "svelte", + "tsx", + "typescript", + "vue", + }, + ignore_filetypes = { -- disable format on save for specified filetypes + -- "python", + }, + }, + disabled = { -- disable formatting capabilities for the listed language servers + -- disable lua_ls formatting capability if you want to use StyLua to format your lua code + -- "lua_ls", + }, + timeout_ms = 1000, -- default format timeout + -- filter = function(client) -- fully override the default formatting function + -- return true + -- end + }, + -- enable servers that you already have installed without mason + servers = { + "basedpyright", + "clangd", + "cmake", + --"csharp_ls", Testing roslyn.nvim + "cssls", + "denols", + "eslint", + "gdscript", + "html", + "jsonls", + "lua_ls", + "marksman", + "nixd", + "rust_analyzer", + "svelte", + "taplo", + "volar", + "vtsls", + "yamlls", + }, + -- customize language server configuration options passed to `lspconfig` + ---@diagnostic disable: missing-fields + config = { + -- clangd = { capabilities = { offsetEncoding = "utf-8" } }, + ---@type lspconfig.Config + nixd = { + settings = { + nixd = { + nixpkgs = { + expr = "import (builtins.getFlake (" .. system_flake_path .. ")).inputs.nixpkgs { }", + }, + options = { + nixos = { + expr = "(builtins.getFlake (" + .. system_flake_path + .. ")).nixosConfigurations." + .. hostname + .. ".options", + }, + home_manager = { + expr = "(builtins.getFlake (" + .. system_flake_path + .. ")).nixosConfigurations." + .. hostname + .. ".options" + .. ".home-manager.users.type.getSubOptions []", + }, + }, + }, + }, + }, + ---@type lspconfig.Config + vtsls = { + filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" }, + settings = { + vtsls = { + tsserver = { + globalPlugins = { + { + name = "@vue/typescript-plugin", + location = vim.fn.get_nix_store "vue-language-server" + .. "/lib/node_modules/@vue/language-server", + languages = { "vue" }, + configNamespace = "typescript", + enableForWorkspaceTypeScriptVersions = true, + }, + }, + }, + }, + }, + }, + ---@type lspconfig.Config + rust_analyzer = { + settings = { + ["rust-analyzer"] = { + cargo = { + extraEnv = { CARGO_PROFILE_RUST_ANALYZER_INHERITS = "dev" }, + extraArgs = { "--profile", "rust-analyzer" }, + }, + check = { command = "check", extraArgs = {} }, + }, + }, + }, + ---@type lspconfig.Config + html = { + filetypes = { "html", "templ", "razor" }, + }, + }, + -- customize how language servers are attached + handlers = { + -- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server + -- function(server, opts) require("lspconfig")[server].setup(opts) end + + -- the key is the server that is being setup with `lspconfig` + -- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server + -- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed + }, + -- Configure buffer local auto commands to add when attaching a language server + autocmds = { + -- first key is the `augroup` to add the auto commands to (:h augroup) + lsp_document_highlight = { + -- Optional condition to create/delete auto command group + -- can either be a string of a client capability or a function of `fun(client, bufnr): boolean` + -- condition will be resolved for each client on each execution and if it ever fails for all clients, + -- the auto commands will be deleted for that buffer + cond = "textDocument/documentHighlight", + -- cond = function(client, bufnr) return client.name == "lua_ls" end, + -- list of auto commands to set + { + -- events to trigger + event = { "CursorHold", "CursorHoldI" }, + -- the rest of the autocmd options (:h nvim_create_autocmd) + desc = "Document Highlighting", + callback = function() + vim.lsp.buf.document_highlight() + end, + }, + { + event = { "CursorMoved", "CursorMovedI", "BufLeave" }, + desc = "Document Highlighting Clear", + callback = function() + vim.lsp.buf.clear_references() + end, + }, + }, + }, + -- mappings to be set up on attaching of a language server + mappings = { + n = { + gl = { + function() + vim.diagnostic.open_float() + end, + desc = "Hover diagnostics", + }, + -- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean + -- gD = { + -- function() vim.lsp.buf.declaration() end, + -- desc = "Declaration of current symbol", + -- cond = "textDocument/declaration", + -- }, + -- ["uY"] = { + -- function() require("astrolsp.toggles").buffer_semantic_tokens() end, + -- desc = "Toggle LSP semantic highlight (buffer)", + -- cond = function(client) return client.server_capabilities.semanticTokensProvider and vim.lsp.semantic_tokens end, + -- }, + }, + }, + -- A custom `on_attach` function to be run after the default `on_attach` function + -- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`) + on_attach = function(client, bufnr) + -- this would disable semanticTokensProvider for all clients + -- client.server_capabilities.semanticTokensProvider = nil + end, + } + + opts = vim.tbl_deep_extend("force", opts, lsp_options) + + return opts + end, +} diff --git a/modules/neovim/lua/plugins/astroui.lua b/modules/neovim/lua/plugins/astroui.lua new file mode 100644 index 0000000..fb2c345 --- /dev/null +++ b/modules/neovim/lua/plugins/astroui.lua @@ -0,0 +1,37 @@ +-- AstroUI provides the basis for configuring the AstroNvim User Interface +-- Configuration documentation can be found with `:h astroui` +-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) +-- as this provides autocomplete and documentation while editing + +---@type LazySpec +return { + "AstroNvim/astroui", + ---@type AstroUIOpts + opts = { + -- change colorscheme + colorscheme = "catppuccin-frappe", + -- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes + highlights = { + init = { -- this table overrides highlights in all themes + -- Normal = { bg = "#000000" }, + }, + astrotheme = { -- a table of overrides/changes when applying the astrotheme theme + -- Normal = { bg = "#000000" }, + }, + }, + -- Icons can be configured throughout the interface + icons = { + -- configure the loading of the lsp in the status line + LSPLoading1 = "⠋", + LSPLoading2 = "⠙", + LSPLoading3 = "⠹", + LSPLoading4 = "⠸", + LSPLoading5 = "⠼", + LSPLoading6 = "⠴", + LSPLoading7 = "⠦", + LSPLoading8 = "⠧", + LSPLoading9 = "⠇", + LSPLoading10 = "⠏", + }, + }, +} diff --git a/modules/neovim/lua/plugins/blink-cmp.lua b/modules/neovim/lua/plugins/blink-cmp.lua new file mode 100644 index 0000000..f03b39e --- /dev/null +++ b/modules/neovim/lua/plugins/blink-cmp.lua @@ -0,0 +1,9 @@ +---@type LazySpec +return { + "Saghen/blink.cmp", + opts = { + signature = { + enabled = true, + }, + }, +} diff --git a/modules/neovim/lua/plugins/luasnip.lua b/modules/neovim/lua/plugins/luasnip.lua new file mode 100644 index 0000000..7827042 --- /dev/null +++ b/modules/neovim/lua/plugins/luasnip.lua @@ -0,0 +1,15 @@ +return { + "L3MON4D3/LuaSnip", + config = function(plugin, opts) + -- include the default astronvim config that calls the setup call + require "astronvim.plugins.configs.luasnip" (plugin, opts) + + -- load snippets paths + require("luasnip.loaders.from_lua").lazy_load { + paths = { vim.fn.stdpath "config" .. "/snippets" }, + } + + -- extend 'razor' files with html snippets + require("luasnip").filetype_extend("razor", { "html" }) + end, +} diff --git a/modules/neovim/lua/plugins/mason.lua b/modules/neovim/lua/plugins/mason.lua new file mode 100644 index 0000000..23c4fbe --- /dev/null +++ b/modules/neovim/lua/plugins/mason.lua @@ -0,0 +1,16 @@ +-- Customize Mason + +---@type LazySpec +return { + -- use mason-tool-installer for automatically installing Mason packages + { + "WhoIsSethDaniel/mason-tool-installer.nvim", + -- overrides `require("mason-tool-installer").setup(...)` + opts = function(_, opts) + opts.ensure_installed = nil -- We should always have everything available to neovim, + opts.run_on_start = false -- and we make sure this never runs so it can't install anything. + + return opts + end, + }, +} diff --git a/modules/neovim/lua/plugins/mini-icons.lua b/modules/neovim/lua/plugins/mini-icons.lua new file mode 100644 index 0000000..e4bca1a --- /dev/null +++ b/modules/neovim/lua/plugins/mini-icons.lua @@ -0,0 +1,13 @@ +---@type LazySpec +return { + "echasnovski/mini.icons", + lazy = true, + opts = { + extension = { + cshtml = { + glyph = "󱦗", + hl = "MiniIconsPurple", + }, + }, + }, +} diff --git a/modules/neovim/lua/plugins/nix-store.lua b/modules/neovim/lua/plugins/nix-store.lua new file mode 100644 index 0000000..7607b47 --- /dev/null +++ b/modules/neovim/lua/plugins/nix-store.lua @@ -0,0 +1,9 @@ +---@type LazySpec +return { + "wizardlink/nix-store.nvim", + priority = 999999, + lazy = false, + opts = { + allow_unfree = true, + }, +} diff --git a/modules/neovim/lua/plugins/none-ls.lua b/modules/neovim/lua/plugins/none-ls.lua new file mode 100644 index 0000000..6877139 --- /dev/null +++ b/modules/neovim/lua/plugins/none-ls.lua @@ -0,0 +1,64 @@ +-- Customize None-ls sources + +---@type LazySpec +return { + "nvimtools/none-ls.nvim", + dependencies = { + "nvimtools/none-ls-extras.nvim", + }, + opts = function(_, config) + -- config variable is the default configuration table for the setup function call + local null_ls = require "null-ls" + local helpers = require "null-ls.helpers" + + -- local deno_fmt = helpers.make_builtin({ + -- name = "deno_fmt", + -- filetypes = { + -- "angular", + -- "astro", + -- "css", + -- "html", + -- "javascript", + -- "json", + -- "jsonc", + -- "less", + -- "markdown", + -- "sass", + -- "scss", + -- "svelte", + -- "typescript", + -- "vue", + -- "yaml", + -- }, + -- method = { null_ls.methods.FORMATTING }, + -- generator_opts = { + -- command = "deno", + -- args = { "fmt", "--unstable-component", "-" }, + -- to_stdin = true, + -- }, + -- factory = helpers.formatter_factory, + -- }) + + -- Check supported formatters and linters + -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting + -- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics + config.sources = require("astrocore").list_insert_unique(config.sources, { + -- Set a formatter + require "none-ls.diagnostics.flake8", + require "none-ls.formatting.ruff", + null_ls.builtins.formatting.clang_format.with { + disabled_filetypes = { "cs" }, + }, + null_ls.builtins.formatting.csharpier, + null_ls.builtins.formatting.nixfmt, + null_ls.builtins.formatting.stylua, + --deno_fmt, + null_ls.builtins.formatting.prettierd, + + null_ls.builtins.code_actions.statix, + + null_ls.builtins.diagnostics.deadnix, + }) + return config -- return final config table + end, +} diff --git a/modules/neovim/lua/plugins/nvim-dap.lua b/modules/neovim/lua/plugins/nvim-dap.lua new file mode 100644 index 0000000..7798b02 --- /dev/null +++ b/modules/neovim/lua/plugins/nvim-dap.lua @@ -0,0 +1,84 @@ +---@type LazySpec +return { + "mfussenegger/nvim-dap", + config = function() + local dap = require "dap" + + ---@type dap.Adapter + dap.adapters.codelldb = { + port = "${port}", + type = "server", + executable = { + command = "codelldb", + args = { "--port", "${port}" }, + }, + } + + ---@type dap.Configuration[] + dap.configurations.rust = { + { + name = "Launch file", + type = "codelldb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopOnEntry = false, + }, + } + + ---@type dap.Adapter + dap.adapters.cppdbg = { + id = "cppdbg", + type = "executable", + command = vim.fn.get_nix_store "vscode-extensions.ms-vscode.cpptools" + .. "/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7", + } + + ---@type dap.Configuration[] + dap.configurations.cpp = { + { + name = "Launch file", + type = "cppdbg", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopAtEntry = true, + }, + { + name = "Attach to gdbserver :1234", + type = "cppdbg", + request = "launch", + MIMode = "gdb", + miDebuggerServerAddress = "localhost:1234", + miDebuggerPath = "/usr/bin/gdb", + cwd = "${workspaceFolder}", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + }, + } + dap.configurations.c = dap.configurations.cpp + + ---@type dap.Adapter + dap.adapters.godot = { + type = "server", + host = "127.0.0.1", + port = 6006, + } + + ---@type dap.Configuration[] + dap.configurations.gdscript = { + { + name = "Launch scene", + type = "godot", + request = "launch", + project = "${workspaceFolder}", + scene = "current", + }, + } + end, +} diff --git a/modules/neovim/lua/plugins/nvim-lint.lua b/modules/neovim/lua/plugins/nvim-lint.lua new file mode 100644 index 0000000..83ee6fc --- /dev/null +++ b/modules/neovim/lua/plugins/nvim-lint.lua @@ -0,0 +1,11 @@ +return { + { + "mfussenegger/nvim-lint", + optional = true, + opts = { + linters_by_ft = { + nix = { "statix", "deadnix" }, + }, + }, + }, +} diff --git a/modules/neovim/lua/plugins/ollama-nvim.lua b/modules/neovim/lua/plugins/ollama-nvim.lua new file mode 100644 index 0000000..7425a2c --- /dev/null +++ b/modules/neovim/lua/plugins/ollama-nvim.lua @@ -0,0 +1,33 @@ +--- @type LazySpec +return { + "nomnivore/ollama.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + }, + + -- All the user commands added by the plugin + cmd = { "Ollama", "OllamaModel", "OllamaServe", "OllamaServeStop" }, + + keys = { + -- Sample keybind for prompt menu. Note that the is important for selections to work properly. + { + "oo", + ":lua require('ollama').prompt()", + desc = "ollama prompt", + mode = { "n", "v" }, + }, + + -- Sample keybind for direct prompting. Note that the is important for selections to work properly. + { + "oG", + ":lua require('ollama').prompt('Generate_Code')", + desc = "ollama Generate Code", + mode = { "n", "v" }, + }, + }, + + ---@type Ollama.Config + opts = { + -- your configuration overrides + }, +} diff --git a/modules/neovim/lua/plugins/roslyn-nvim.lua b/modules/neovim/lua/plugins/roslyn-nvim.lua new file mode 100644 index 0000000..9747d5a --- /dev/null +++ b/modules/neovim/lua/plugins/roslyn-nvim.lua @@ -0,0 +1,90 @@ +---@type LazySpec +return { + { + "seblyng/roslyn.nvim", + ft = { "cs", "razor" }, + lazy = true, + dependencies = { + { + "tris203/rzls.nvim", + ---@return rzls.Config + opts = function(_, opts) + local has_astrolsp, astrolsp = pcall(require, "astrolsp") + local has_blink, blink = pcall(require, "blink-cmp") + + opts = { + capabilities = has_blink and blink.get_lsp_capabilities({}, true) + or vim.lsp.protocol.make_client_capabilities(), + on_attach = has_astrolsp and astrolsp.on_attach or nil, + path = vim.fn.get_nix_store "rzls" .. "/bin/rzls", + } + + return opts + end, + }, + }, + opts = function(_, opts) + local has_astrolsp, astrolsp = pcall(require, "astrolsp") + local rzlspath = vim.fn.get_nix_store "rzls" + + opts = { + ---@type vim.lsp.ClientConfig + ---@diagnostic disable-next-line: missing-fields + config = { + cmd = { + "Microsoft.CodeAnalysis.LanguageServer", + "--stdio", + "--logLevel=Information", + "--extensionLogDirectory=" .. vim.fs.dirname(vim.lsp.get_log_path()), + "--razorSourceGenerator=" .. rzlspath .. "/lib/rzls/Microsoft.CodeAnalysis.Razor.Compiler.dll", + "--razorDesignTimePath=" + .. rzlspath + .. "/lib/rzls/Targets/Microsoft.NET.Sdk.Razor.DesignTime.targets", + }, + handlers = require "rzls.roslyn_handlers", + on_attach = has_astrolsp and astrolsp.on_attach or nil, + settings = { + ["csharp|inlay_hints"] = { + csharp_enable_inlay_hints_for_implicit_object_creation = true, + csharp_enable_inlay_hints_for_implicit_variable_types = true, + + csharp_enable_inlay_hints_for_lambda_parameter_types = true, + csharp_enable_inlay_hints_for_types = true, + dotnet_enable_inlay_hints_for_indexer_parameters = true, + dotnet_enable_inlay_hints_for_literal_parameters = true, + dotnet_enable_inlay_hints_for_object_creation_parameters = true, + dotnet_enable_inlay_hints_for_other_parameters = true, + dotnet_enable_inlay_hints_for_parameters = true, + dotnet_suppress_inlay_hints_for_parameters_that_differ_only_by_suffix = true, + dotnet_suppress_inlay_hints_for_parameters_that_match_argument_name = true, + dotnet_suppress_inlay_hints_for_parameters_that_match_method_intent = true, + }, + ["csharp|code_lens"] = { + dotnet_enable_references_code_lens = true, + }, + }, + }, + } + + return opts + end, + init = function() + vim.filetype.add { + extension = { + razor = "razor", + cshtml = "razor", + }, + } + end, + }, + { + "nvim-neotest/neotest", + dependencies = { "Issafalcon/neotest-dotnet", config = function() end }, + opts = function(_, opts) + if not opts.adapters then + opts.adapters = {} + end + table.insert(opts.adapters, require "neotest-dotnet" (require("astrocore").plugin_opts "neotest-dotnet")) + end, + }, +} diff --git a/modules/neovim/lua/plugins/snacks-nvim.lua b/modules/neovim/lua/plugins/snacks-nvim.lua new file mode 100644 index 0000000..f0a8baa --- /dev/null +++ b/modules/neovim/lua/plugins/snacks-nvim.lua @@ -0,0 +1,7 @@ +--- @type LazySpec +return { + "folke/snacks.nvim", + opts = function(_, opts) + opts.zen = { enabled = true } + end, +} diff --git a/modules/neovim/lua/plugins/treesitter.lua b/modules/neovim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..26e8950 --- /dev/null +++ b/modules/neovim/lua/plugins/treesitter.lua @@ -0,0 +1,57 @@ +-- Customize Treesitter + +---@type LazySpec +return { + "nvim-treesitter/nvim-treesitter", + ---@param _ LazyPlugin + ---@param opts TSConfig + opts = function(_, opts) + -- disable automatically installing parsers + opts.auto_install = false + + -- add more things to the ensure_installed table protecting against community packs modifying it + opts.ensure_installed = require("astrocore").list_insert_unique(opts.ensure_installed --[[@as string[]], { + -- Programming + "c", + "c_sharp", + "cmake", + "cpp", + "css", + "gdscript", + "godot_resource", + "html", + "hyprlang", + "javascript", + "jsdoc", + "lua", + "nim", + "nim_format_string", + "objc", + "proto", + "python", + "svelte", + "tsx", + "typescript", + "vue", + -- Scripting + "bash", + "fish", + "glsl", + -- Configuring + "dockerfile", + "json", + "jsonc", + "nix", + "vhs", + "yaml", + -- Misc + "cuda", + "markdown", + "markdown_inline", + "query", + -- VIM + "vim", + "vimdoc", + }) + end, +} diff --git a/modules/neovim/lua/plugins/user.lua b/modules/neovim/lua/plugins/user.lua new file mode 100644 index 0000000..d607509 --- /dev/null +++ b/modules/neovim/lua/plugins/user.lua @@ -0,0 +1,140 @@ +-- You can also add or configure plugins by creating files in this `plugins/` folder +-- Here are some examples: + +---@type LazySpec +return { + -- Customize dashboard options + { + "folke/snacks.nvim", + opts = { + dashboard = { + preset = { + header = table.concat({ + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣶⣶⣾⣿⣿⣿⣿⣷⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣾⣿⣿⣿⣿⣷⣶⣶⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⢀⣠⡴⠾⠟⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠷⢦⣄⡀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠘⠋⠁⠀⠀⢀⣀⣤⣶⣖⣒⣒⡲⠶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠶⢖⣒⣒⣲⣶⣤⣀⡀⠀⠀⠈⠙⠂⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⣠⢖⣫⣷⣿⣿⣿⣿⣿⣿⣶⣤⡙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⢋⣤⣾⣿⣿⣿⣿⣿⣿⣾⣝⡲⣄⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⣄⣀⣠⢿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠻⢿⣿⣿⣦⣳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣟⣴⣿⣿⡿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⡻⣄⣀⣤⠀⠀⠀", + "⠀⠀⠀⠈⠟⣿⣿⣿⡿⢻⣿⣿⣿⠃⠀⠀⠀⠀⠙⣿⣿⣿⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⣿⣿⣿⠋⠀⠀⠀⠀⠘⣿⣿⣿⡟⢿⣿⣿⣟⠻⠁⠀⠀⠀", + "⠤⣤⣶⣶⣿⣿⣿⡟⠀⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⢻⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡏⠀⠀⠀⠀⠀⠀⣹⣿⣿⣷⠈⢻⣿⣿⣿⣶⣦⣤⠤", + "⠀⠀⠀⠀⠀⢻⣟⠀⠀⣿⣿⣿⣿⡀⠀⠀⠀⠀⢀⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⣿⣿⡀⠀⠀⠀⠀⢀⣿⣿⣿⣿⠀⠀⣿⡟⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠻⣆⠀⢹⣿⠟⢿⣿⣦⣤⣤⣴⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡿⢷⣤⣤⣤⣴⣿⣿⣿⣿⡇⠀⣰⠟⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠙⠂⠀⠙⢀⣀⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠁⠀⣻⣿⣿⣿⣿⣿⣿⠏⠀⠘⠃⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡈⠻⠿⣿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⢿⣿⣿⣿⠿⠛⢁⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠛⣶⣦⣤⣤⣤⡤⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⢤⣤⣤⣤⣶⣾⠛⠓⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + }, "\n"), + }, + }, + }, + }, + + -- Add the catppuccin colorscheme + { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + ---@type CatppuccinOptions + opts = { + integrations = { + aerial = true, + alpha = true, + blink_cmp = true, + cmp = false, + colorful_winsep = { enabled = true, color = "lavender" }, + dap = true, + dap_ui = true, + gitsigns = true, + illuminate = true, + indent_blankline = true, + markdown = true, + mason = true, + native_lsp = { enabled = true }, + neotree = true, + semantic_tokens = true, + snacks = { enabled = true, indent_scope_color = "lavender" }, + symbols_outline = true, + telescope = { enabled = false }, + treesitter = true, + ts_rainbow = false, + ufo = true, + which_key = true, + window_picker = true, + }, + }, + specs = { + { + "akinsho/bufferline.nvim", + optional = true, + opts = function(_, opts) + return require("astrocore").extend_tbl(opts, { + highlights = require("catppuccin.groups.integrations.bufferline").get(), + }) + end, + }, + }, + }, + + -- Makes most if not all groups have a transparent background. + { + "xiyaowong/transparent.nvim", + opts = function(_, opts) + local transparent = require "transparent" + + opts.exclude_groups = { + "StatusLine", + "StatusLineNC", + } + + opts.extra_groups = { + "BlinkCmpSignatureHelpActiveParameter", + "CursorColumn", + "CursorLineFold", + "CursorLineSign", + "FloatBorder", + "FoldColumn", + "Folded", + "GitSignsAdd", + "GitSignsChange", + "GitSignsDelete", + "LineNr", + "LineNrAbove", + "LineNrBelow", + "LineNrBelow", + "LspInlayHint", + "NeoTreeFloatingBorder", + "NeoTreeMessage", + "NeoTreeNormal", + "NeoTreeNormalNC", + "NeoTreeStatusLine", + "NeoTreeStatusLineNC", + "NeoTreeTabActive", + "NeoTreeTabInactive", + "NeoTreeTabSeparatorActive", + "NeoTreeTabSeparatorInactive", + "NeoTreeVertSplit", + "NeoTreeWinSeparator", + "NormalFloat", + "Pmenu", + "TabLine", + "TabLineFill", + "VertSplit", + "WinBar", + "WinBarNC", + "WinSeparator", + } + + transparent.clear_prefix "BufferLine" + transparent.clear_prefix "Diagnostic" + transparent.clear_prefix "NvimTree" + end, + }, + + -- Adds highlighting and lsp features for embedded code in documents. + { + "jmbuhr/otter.nvim", + dependencies = { + "nvim-treesitter/nvim-treesitter", + }, + event = "VeryLazy", + }, +} diff --git a/modules/neovim/lua/polish.lua b/modules/neovim/lua/polish.lua new file mode 100644 index 0000000..f7c2205 --- /dev/null +++ b/modules/neovim/lua/polish.lua @@ -0,0 +1,16 @@ +-- This will run last in the setup process and is a good place to configure +-- things like custom filetypes. This just pure lua so anything that doesn't +-- fit in the normal config locations above can go here + +-- Set up custom filetypes +vim.filetype.add { + extension = { + foo = "fooscript", + }, + filename = { + ["Foofile"] = "fooscript", + }, + pattern = { + ["~/%.config/foo/.*"] = "fooscript", + }, +} diff --git a/modules/neovim/lua/util.lua b/modules/neovim/lua/util.lua new file mode 100644 index 0000000..8dc9ea4 --- /dev/null +++ b/modules/neovim/lua/util.lua @@ -0,0 +1,31 @@ +--- Helper function to allow me to run commands grabbed +--- by the current selection. +--- @param isLua boolean +--- @return string +vim.fn.runcmdonmark = function(isLua) + local beginRow, beginCol = unpack(vim.api.nvim_buf_get_mark(0, "<")) + local endRow, endCol = unpack(vim.api.nvim_buf_get_mark(0, ">")) + + if beginRow == nil or beginCol == nil or endRow == nil or endCol == nil then + return "" + end + + local text = table.concat( + vim.tbl_map(function(incoming) + return vim.trim(incoming) + end, vim.api.nvim_buf_get_text(0, beginRow - 1, beginCol, endRow - 1, endCol + 1, {})), + " " + ) + + vim.notify("Running expression: " .. text, vim.log.levels.INFO) + + return vim.api.nvim_cmd( + vim.api.nvim_parse_cmd((isLua == true and ":lua " or "") .. text, {}) --[[@as vim.api.keyset.cmd]], + {} + ) +end + +--- Register the function as a command as well, to facilitate things. +vim.api.nvim_create_user_command("RunCmdOnMark", function(opts) + vim.fn.runcmdonmark((opts.args == "v:false" or opts.args == "false") and false or true) +end, { range = true, nargs = "?" }) diff --git a/modules/neovim/queries/c_sharp/folds.scm b/modules/neovim/queries/c_sharp/folds.scm new file mode 100644 index 0000000..9c2da39 --- /dev/null +++ b/modules/neovim/queries/c_sharp/folds.scm @@ -0,0 +1,16 @@ +;; extends + +; Capture entire regions for folding +( + (preproc_region) @region_begin + . + [ + (comment) + (declaration) + (statement) + (type_declaration) + ]* + . + (preproc_endregion) @region_end (#offset! @region_end 0 0 -1 0) + (#make-range! "fold" @region_begin @region_end) +) diff --git a/modules/template/README.md b/modules/template/README.md new file mode 100644 index 0000000..dece098 --- /dev/null +++ b/modules/template/README.md @@ -0,0 +1,18 @@ +# READ THIS BEFORE PROCEEDING + +Below is a checklist of changes you need to do before rebuilding your system. + +## Generate your system configuration and replace the placeholders. + +You can achieve this by running `sudo nixos-generate-config`, then overwrite `hardware-configuration.nix` and +`configuration.nix` with the contents of the files found in `/etc/nixos`. + +## Replace placeholder text + +In `flake.nix` you will find `your-hostname-here`, replace with your machine's current hostname. + +In `home-manager.nix` you have to replace: +- `your-username-here` with your user's username; +- `your-home-directory-here` with the path of your home directory, usually the same as your username; +- `your-hostname-here` with your machine's current hostname; +- `your-flake-location-here` with where you are storing the flake. diff --git a/modules/template/configuration.nix b/modules/template/configuration.nix new file mode 100644 index 0000000..c915eb0 --- /dev/null +++ b/modules/template/configuration.nix @@ -0,0 +1 @@ +{ ... }: { } diff --git a/modules/template/flake.nix b/modules/template/flake.nix new file mode 100644 index 0000000..447a388 --- /dev/null +++ b/modules/template/flake.nix @@ -0,0 +1,48 @@ +{ + description = "NixOS System Flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + # Ideally using nixos-unstable since my configuration + # is based off of this channel. + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + linuxware = { + url = "github:wizardlink/linuxware"; + inputs.nixpkgs.follows = "nixpkgs"; # Pin to your local `nixpkgs` if you use the unstable channel. + }; + }; + + outputs = + { + home-manager, + nixpkgs, + linuxware, + ... + }@inputs: + let + system = "x86_64-linux"; + in + { + your-hostname-here = + let + specialArgs = inputs; + modules = [ + ./configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = inputs; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.wizardlink = import ./home-manager.nix; + } + linuxware.nixosModules.hyprland + ]; + in + nixpkgs.lib.nixosSystem { inherit system specialArgs modules; }; + }; +} diff --git a/modules/template/hardware-configuration.nix b/modules/template/hardware-configuration.nix new file mode 100644 index 0000000..c915eb0 --- /dev/null +++ b/modules/template/hardware-configuration.nix @@ -0,0 +1 @@ +{ ... }: { } diff --git a/modules/template/home-manager.nix b/modules/template/home-manager.nix new file mode 100644 index 0000000..9f6fabc --- /dev/null +++ b/modules/template/home-manager.nix @@ -0,0 +1,90 @@ +{ + config, + pkgs, + linuxware, + ... +}: + +{ + imports = [ + linuxware.homeManagerModules.emacs + linuxware.homeManagerModules.hyprland + linuxware.homeManagerModules.neovim + ]; + + # Home Manager needs a bit of information about you and the paths it should + # manage. + home.username = "your-username-here"; + home.homeDirectory = "/home/your-home-directory-here"; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "24.11"; # Please read the comment before changing. + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = [ + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # pkgs.hello + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. These will be explicitly sourced when using a + # shell provided by Home Manager. If you don't want to manage your shell + # through Home Manager then you have to manually source 'hm-session-vars.sh' + # located at either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/wizardlink/etc/profile.d/hm-session-vars.sh + # + home.sessionVariables = { + # EDITOR = "emacs"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + + # Enable Neovim, pre-configured by `linuxware`. + programs.neovim.enable = true; +} diff --git a/packages/README.md b/packages/README.md new file mode 100644 index 0000000..b68e530 --- /dev/null +++ b/packages/README.md @@ -0,0 +1,45 @@ +## [zenergy](https://github.com/BoukeHaarsma23/zenergy/) + +This is a kernel driver that adds the ability for user to fetch power draw data from AMD CPUs. I maintain it in +[nixpkgs], so you shouldn't use this package _unless_ it is broken in your current +version of [nixpkgs]. + +Unfortunately this cannot be outputted as a package in the flake since to create a derivation the `kernel` parameter +must be present, which, each user will have their own kernel package. + +Thus you need to copy the `zenergy.nix` file somewhere in your configuration and inside `boot.extraModulePackages` pass +the package with the following expression: `config.boot.kernelPackages.callPackage ./path/to/zenergy.nix`; successfully +installing the package onto your system. + +## wb32dfu-udev-rules + +This package installs the udev rules necessary to allow flashing QMK/Vial onto keyboards that use WB32-DFU bootloaders. + +It is meant to be used in tandem with [NixOS] using the +[`services.udev.packages`](https://search.nixos.org/options?query=services.udev.packages) configuration. + +## [miraclecast](https://github.com/albfan/miraclecast/) + +This is a suite of programs that allows you to connect external monitors through Wi-Fi, though unfortunately some of the +programs have no documentation and some an unhelpful help command too. + +Currently the **package is available in [nixpkgs]** __however it currently fails to compile__, so you have to rely on my +configuration of this package or wait for [nixpkgs#387762](https://github.com/NixOS/nixpkgs/pull/387762) to be merged. + +## [lmms] + +This is a free and open source DAW that is cross platform to Linux, Mac and Windows. + +I maintain here a package since the [PR hasn't been merged](https://github.com/NixOS/nixpkgs/pull/377643) with a newer +version. It has not been updated for 5y, and unfortuantely, there hasn't been any releases of [lmms] since then, so an +unstable version was due to happen in [nixpkgs]. + +The version in [nixpkgs] also doesn't comes with [wine](https://www.winehq.org/) packaged alongside it, limiting your +options for instrument plugins drastically. + + + +[nixpkgs]: https://github.com/NixOS/nixpkgs/ +[nixos]: https://nixos.org +[lmms]: https://lmms.io/ + diff --git a/packages/lmms/0001-chore-allow-injection-of-wine-path-for-nix.patch b/packages/lmms/0001-chore-allow-injection-of-wine-path-for-nix.patch new file mode 100644 index 0000000..20cc779 --- /dev/null +++ b/packages/lmms/0001-chore-allow-injection-of-wine-path-for-nix.patch @@ -0,0 +1,39 @@ +From 55c86d9ba9275a58299b31a6a5eb382a20662a44 Mon Sep 17 00:00:00 2001 +From: "Alexandre Cavalheiro S. Tiago da Silva" +Date: Wed, 16 Apr 2025 13:36:00 -0300 +Subject: [PATCH] chore: allow injection of wine path for nix + +Signed-off-by: Alexandre Cavalheiro S. Tiago da Silva +--- + cmake/modules/FindWine.cmake | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/cmake/modules/FindWine.cmake b/cmake/modules/FindWine.cmake +index ea8d90cd2..6b87c61ae 100644 +--- a/cmake/modules/FindWine.cmake ++++ b/cmake/modules/FindWine.cmake +@@ -13,6 +13,13 @@ + # WINE_64_FLAGS - 64-bit linker flags + # + ++set(WINE_INCLUDE_DIR @WINE_LOCATION@/include) ++set(WINE_BUILD @WINE_LOCATION@/bin/winebuild) ++set(WINE_CXX @WINE_LOCATION@/bin/wineg++) ++set(WINE_GCC @WINE_LOCATION@/bin/winegcc) ++set(WINE_32_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/i386-unix) ++set(WINE_64_LIBRARY_DIRS @WINE_LOCATION@/lib/wine/x86_64-windows) ++ + MACRO(_findwine_find_flags output expression result) + STRING(REPLACE " " ";" WINEBUILD_FLAGS "${output}") + FOREACH(FLAG ${WINEBUILD_FLAGS}) +@@ -32,6 +39,7 @@ ENDMACRO() + + # Prefer newest wine first + list(APPEND WINE_LOCATIONS ++ @WINE_LOCATION@ + /opt/wine-staging + /opt/wine-devel + /opt/wine-stable +-- +2.48.1 + diff --git a/packages/lmms/package.nix b/packages/lmms/package.nix new file mode 100644 index 0000000..b641eed --- /dev/null +++ b/packages/lmms/package.nix @@ -0,0 +1,117 @@ +{ + SDL2, + alsa-lib, + carla, + cmake, + fetchFromGitHub, + fftwFloat, + fltk, + fluidsynth, + glibc_multi, + lame, + lib, + libgig, + libjack2, + libogg, + libpulseaudio, + libsForQt5, + libsamplerate, + libsndfile, + libsoundio, + libvorbis, + lilv, + lv2, + perl540, + perl540Packages, + pkg-config, + portaudio, + qt5, + sndio, + stdenv, + substitute, + suil, + wineWowPackages, + withOptionals ? false, +}: + +let + winePackage = if lib.isDerivation wineWowPackages then wineWowPackages else wineWowPackages.minimal; +in +stdenv.mkDerivation { + pname = "lmms"; + version = "0-unstable-2025-04-16"; + + src = fetchFromGitHub { + owner = "LMMS"; + repo = "lmms"; + rev = "64053342d8cae2d38c49cfb6c5b24fe4234ffdef"; + sha256 = "sha256-X2Dkydmq7EOhhUIwdZoRAfM3zNXgZLgrIHU8ijX8+dU="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + cmake + libsForQt5.qt5.qttools + pkg-config + qt5.wrapQtAppsHook + ]; + + buildInputs = + [ + fftwFloat + libsForQt5.qt5.qtbase + libsForQt5.qt5.qtx11extras + libsamplerate + libsndfile + ] + ++ lib.optionals withOptionals [ + SDL2 + alsa-lib + carla + fltk + fluidsynth + glibc_multi + lame + libgig + libjack2 + libogg + libpulseaudio + libsoundio + libvorbis + lilv + lv2 + perl540 + perl540Packages.ListMoreUtils + perl540Packages.XMLParser + portaudio + sndio + suil + winePackage + ]; + + patches = lib.optionals withOptionals [ + (substitute { + src = ./0001-chore-allow-injection-of-wine-path-for-nix.patch; + substitutions = [ + "--replace-fail" + "@WINE_LOCATION@" + winePackage + ]; + }) + ]; + + cmakeFlags = lib.optionals withOptionals [ + "-DWANT_WEAKJACK=OFF" + ]; + + meta = with lib; { + description = "DAW similar to FL Studio (music production software)"; + mainProgram = "lmms"; + homepage = "https://lmms.io"; + license = licenses.gpl2Plus; + platforms = [ + "x86_64-linux" + ]; + maintainers = with maintainers; [ wizardlink ]; + }; +} diff --git a/packages/miraclecast.nix b/packages/miraclecast.nix new file mode 100644 index 0000000..681a386 --- /dev/null +++ b/packages/miraclecast.nix @@ -0,0 +1,91 @@ +{ + lib, + fetchFromGitHub, + glib, + gst_all_1, + iproute2, + libtool, + makeBinaryWrapper, + meson, + miraclecast, + ninja, + pkg-config, + readline, + stdenv, + systemdLibs, + testers, + udev, + wpa_supplicant, + relyUdev ? true, +}: + +let + gstreamerPluginPaths = lib.concatMapStrings (pth: pth + "/lib/gstreamer-1.0:") [ + (lib.getLib gst_all_1.gstreamer) + gst_all_1.gst-libav + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + ]; +in +stdenv.mkDerivation { + pname = "miraclecast"; + version = "1.0-unstable-2024-07-13"; + + src = fetchFromGitHub { + owner = "albfan"; + repo = "miraclecast"; + rev = "937747fd4de64a33bccf5adb73924c435ceb821b"; + hash = "sha256-y37+AOz8xYjtDk9ITxMB7UeWeMpDH+b6HQBczv+x5zo="; + }; + + nativeBuildInputs = [ + makeBinaryWrapper + meson + ninja + pkg-config + ]; + + buildInputs = [ + glib + gst_all_1.gstreamer + iproute2 + libtool + readline + systemdLibs + udev + wpa_supplicant + ]; + + mesonFlags = + [ + "-Dbuild-tests=true" + "-Dip-binary=${iproute2}/bin/ip" + ] + ++ lib.optionals relyUdev [ + "-Drely-udev=true" + ]; + + postPatch = '' + substituteInPlace res/miracle-gst \ + --replace-fail "/usr/bin/gst-launch-1.0" "${gst_all_1.gstreamer}/bin/gst-launch-1.0" + ''; + + postInstall = '' + wrapProgram $out/bin/miracle-gst --set GST_PLUGIN_SYSTEM_PATH_1_0 ${gstreamerPluginPaths} + ''; + + passthru.tests.version = testers.testVersion { + package = miraclecast; + command = "miracled --version"; + version = "Miraclecast 1"; + }; + + meta = with lib; { + description = "Connect external monitors to your system via Wifi-Display specification also known as Miracast"; + homepage = "https://github.com/albfan/miraclecast"; + license = licenses.lgpl21Plus; + maintainers = [ maintainers.wizardlink ]; + platforms = platforms.linux; + }; +} diff --git a/packages/wb32dfu-udev-rules/default.nix b/packages/wb32dfu-udev-rules/default.nix new file mode 100644 index 0000000..d277fbc --- /dev/null +++ b/packages/wb32dfu-udev-rules/default.nix @@ -0,0 +1,19 @@ +{ + stdenv, +}: + +stdenv.mkDerivation { + pname = "wb32dfu-udev-rules"; + version = "0-unstable-2024-09-15"; + src = ./.; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + install -D wb32dfu.rules $out/lib/udev/rules.d/50-wb32dfu.rules + + runHook postInstall + ''; +} diff --git a/packages/wb32dfu-udev-rules/wb32dfu.rules b/packages/wb32dfu-udev-rules/wb32dfu.rules new file mode 100644 index 0000000..925fdcc --- /dev/null +++ b/packages/wb32dfu-udev-rules/wb32dfu.rules @@ -0,0 +1,2 @@ +# WB32 DFU +SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess" diff --git a/packages/zenergy.nix b/packages/zenergy.nix new file mode 100644 index 0000000..cfdb63d --- /dev/null +++ b/packages/zenergy.nix @@ -0,0 +1,45 @@ +{ + lib, + stdenv, + fetchFromGitHub, + kernel, + kmod, +}: + +let + kernelDirectory = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; +in +stdenv.mkDerivation { + pname = "zenergy"; + version = "0-unstable-2024-10-10"; + + src = fetchFromGitHub { + owner = "BoukeHaarsma23"; + repo = "zenergy"; + rev = "7c4e83d5e2f887f4c31edaf92e5f94e9448e9764"; + hash = "sha256-5fYelEr4IYnuXrly15IcyicFrF0tYjs7OBqIhUYQXZ0="; + }; + + nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies; + + hardeningDisable = [ + "format" + "pic" + ]; + + makeFlags = kernel.makeFlags ++ [ "KDIR=${kernelDirectory}" ]; + + installTargets = [ "modules_install" ]; + + preBuild = '' + substituteInPlace Makefile --replace-fail "PWD modules_install" "PWD INSTALL_MOD_PATH=$out modules_install" + ''; + + meta = with lib; { + description = "Based on AMD_ENERGY driver, but with some jiffies added so non-root users can read it safely."; + homepage = "https://github.com/BoukeHaarsma23/zenergy"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ wizardlink ]; + platforms = platforms.linux; + }; +} diff --git a/shared/README.md b/shared/README.md new file mode 100644 index 0000000..c0143fe --- /dev/null +++ b/shared/README.md @@ -0,0 +1,55 @@ +In this directory you will find the configuration for [NixOS] and [Home Manager] that I share across multiple machines. + +## File structure + +### ./nixos + +- `default.nix` + - _Entry point._ +- `common.nix` + - _General configuration and packages._ +- `desktop.nix` + - _Desktop specific configuration._ +- `gaming.nix` + - _Gaming related configuration._ +- `hardware.nix` + - _Hardware specific configuration._ +- `system.nix` + - _Configuration pertaining the system._ +- `virtualization.nix` + - _Virtualization packages and configuration._ + +### ./home-manager + +- `default.nix` + - _Entry point._ +- `common.nix` + - _General and misc. packages alongside uncategorized dotfiles._ +- `gaming.nix` + - _Packages and dotfiles pertaining games/gaming._ +- `theming.nix` + - _Theming of the system and it's packages._ +- `dotfiles/` + - _Program specific user configuration._ +- `scripts/` + - _Contains scripts that I may use day to day._ + +#### Screenshots + +Alacritty & Fish: + +![image](/assets/screenshots/alacritty-and-fish.png) + +Waybar: + +![image](/assets/screenshots/waybar.png) + +Rofi: + +![image](/assets/screenshots/rofi.png) + + + + +[nixos]: https://nixos.org +[home manager]: https://github.com/nix-community/home-manager diff --git a/shared/home-manager/common.nix b/shared/home-manager/common.nix new file mode 100644 index 0000000..b20610e --- /dev/null +++ b/shared/home-manager/common.nix @@ -0,0 +1,139 @@ +{ + self, + pkgs, + clipboard-sync, + ... +}: + +{ + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + + home.file = { + # My utility scripts + ".local/share/scripts" = { + source = ./scripts; + recursive = true; + }; + + # Configuration for mako, a notification daemon. + ".config/mako".source = ./dotfiles/mako; + + # Configure pipewire for microphone noise supression. + ".config/pipewire/pipewire.conf.d/99-input-denoising.conf".text = '' + context.modules = [ + { name = libpipewire-module-filter-chain + args = { + node.description = "Noise Canceling source" + media.name = "Noise Canceling source" + filter.graph = { + nodes = [ + { + type = ladspa + name = rnnoise + plugin = ${pkgs.rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so + label = noise_suppressor_mono + control = { + "VAD Threshold (%)" = 60.0 + "VAD Grace Period (ms)" = 175 + "Retroactive VAD Grace (ms)" = 50 + } + } + ] + } + capture.props = { + node.name = "capture.rnnoise_source" + node.passive = true + audio.rate = 48000 + } + playback.props = { + node.name = "rnnoise_source" + media.class = Audio/Source + audio.rate = 48000 + } + } + } + ] + ''; + }; + + # Configure XDG + xdg.mimeApps.defaultApplications = { + "inode/directory" = [ "thunar.desktop" ]; + "text/html" = [ "firefox.desktop" ]; + "video/mp4" = [ "vlc.desktop" ]; + "video/x-matroska" = [ "vlc.desktop" ]; + "x-scheme-handler/about" = [ "firefox.desktop" ]; + "x-scheme-handler/http" = [ "firefox.desktop" ]; + "x-scheme-handler/https" = [ "firefox.desktop" ]; + "x-scheme-handler/unknown" = [ "firefox.desktop" ]; + }; + + home.packages = with pkgs; [ + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + + ## Tools + # Utilities + fastfetch + firefox + pavucontrol + # protonvpn-gui # WARNING: Marked as broken https://github.com/NixOS/nixpkgs/commit/84faa614a5256a84e3dd4e445053ff76f4c0a5d4 + qbittorrent + qdirstat + speedcrunch + vlc + yt-dlp + zathura + + # Personal utilities + anki + ledger + vesktop + + # Editing + libreoffice + + # Creative work + aseprite + blender + krita + self.packages.${system}.lmms + orca-slicer + shotcut + vcv-rack + vhs + + ## Entertainment + jellyfin-media-player + tidal-hifi + + ## Libraries + libsForQt5.kdegraphics-thumbnailers + libsForQt5.kio-extras + rnnoise-plugin + + ## Development + dbeaver-bin + godot_4 + hoppscotch + lazygit + + ## Desktop environment + clipboard-sync.packages.${pkgs.stdenv.hostPlatform.system}.default + cliphist + grim + libsForQt5.ark + loupe + mako + slurp + swww + + # Mail client + thunderbird + ]; +} diff --git a/shared/home-manager/default.nix b/shared/home-manager/default.nix new file mode 100644 index 0000000..e0205e4 --- /dev/null +++ b/shared/home-manager/default.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + imports = [ + ./common.nix + ./dotfiles + ./gaming.nix + ./theming.nix + ]; +} diff --git a/shared/home-manager/dotfiles/alacritty.nix b/shared/home-manager/dotfiles/alacritty.nix new file mode 100644 index 0000000..39b9c77 --- /dev/null +++ b/shared/home-manager/dotfiles/alacritty.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: + +let + catppuccin-theme = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "alacritty"; + rev = "94800165c13998b600a9da9d29c330de9f28618e"; + hash = "sha256-Pi1Hicv3wPALGgqurdTzXEzJNx7vVh+8B9tlqhRpR2Y="; + }; +in +{ + programs.alacritty = { + enable = true; + settings = { + general.import = [ "${catppuccin-theme}/catppuccin-frappe.toml" ]; + + font = { + normal = { + family = "BlexMono Nerd Font"; + style = "Regular"; + }; + + size = 12; + }; + + window = { + decorations = "None"; + opacity = 0.8; + + padding = { + x = 18; + y = 18; + }; + }; + }; + }; +} diff --git a/shared/home-manager/dotfiles/default.nix b/shared/home-manager/dotfiles/default.nix new file mode 100644 index 0000000..e08e113 --- /dev/null +++ b/shared/home-manager/dotfiles/default.nix @@ -0,0 +1,16 @@ +{ ... }: + +{ + imports = [ + ./alacritty.nix + ./direnv + ./fish + ./git.nix + ./mangohud.nix + ./obs-studio.nix + ./rofi + ./spotify + ./tmux + ./waybar.nix + ]; +} diff --git a/shared/home-manager/dotfiles/direnv/default.nix b/shared/home-manager/dotfiles/direnv/default.nix new file mode 100644 index 0000000..c27cb2c --- /dev/null +++ b/shared/home-manager/dotfiles/direnv/default.nix @@ -0,0 +1,8 @@ +{ ... }: + +{ + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; +} diff --git a/shared/home-manager/dotfiles/fish/Catppuccin-Frappe.theme b/shared/home-manager/dotfiles/fish/Catppuccin-Frappe.theme new file mode 100644 index 0000000..3dc51d4 --- /dev/null +++ b/shared/home-manager/dotfiles/fish/Catppuccin-Frappe.theme @@ -0,0 +1,30 @@ +# name: 'Catppuccin frappe' +# url: 'https://github.com/catppuccin/fish' +# preferred_background: 303446 + +fish_color_normal c6d0f5 +fish_color_command 8caaee +fish_color_param eebebe +fish_color_keyword e78284 +fish_color_quote a6d189 +fish_color_redirection f4b8e4 +fish_color_end ef9f76 +fish_color_comment 838ba7 +fish_color_error e78284 +fish_color_gray 737994 +fish_color_selection --background=414559 +fish_color_search_match --background=414559 +fish_color_option a6d189 +fish_color_operator f4b8e4 +fish_color_escape ea999c +fish_color_autosuggestion 737994 +fish_color_cancel e78284 +fish_color_cwd e5c890 +fish_color_user 81c8be +fish_color_host 8caaee +fish_color_host_remote a6d189 +fish_color_status e78284 +fish_pager_color_progress 737994 +fish_pager_color_prefix f4b8e4 +fish_pager_color_completion c6d0f5 +fish_pager_color_description 737994 diff --git a/shared/home-manager/dotfiles/fish/default.nix b/shared/home-manager/dotfiles/fish/default.nix new file mode 100644 index 0000000..aef3482 --- /dev/null +++ b/shared/home-manager/dotfiles/fish/default.nix @@ -0,0 +1,76 @@ +{ ... }: + +{ + home.file = { + # Cattpuccin theme for fish shell. + ".config/fish/themes/Catppuccin-Frappe.theme".source = ./Catppuccin-Frappe.theme; + }; + + programs.fish = { + enable = true; + + interactiveShellInit = '' + ## Set vim mode + set -g fish_key_bindings fish_vi_key_bindings + + # Configure FZF + set -x FZF_DEFAULT_OPTS '--color=fg:#f8f8f2,hl:#bd93f9 --color=fg+:#f8f8f2,bg+:#44475a,hl+:#bd93f9 --color=info:#ffb86c,prompt:#50fa7b,pointer:#ff79c6 --color=marker:#ff79c6,spinner:#ffb86c,header:#6272a4 --layout=reverse --height 50%' + + # Remove welcome message + set -x fish_greeting "" + + ## Add directories to $PATH + fish_add_path /home/wizardlink/.local/share/scripts \ + /home/wizardlink/.config/emacs/bin \ + /home/wizardlink/.nimble/bin \ + /home/wizardlink/.cargo/bin \ + /home/wizardlink/.local/bin \ + /lib/flatpak/exports/bin + + zoxide init --cmd cd fish | source + ''; + + shellAbbrs = { + z = "zoxide"; + pkg_expr = { + position = "anywhere"; + expansion = "--expr 'with import { % }; '"; + }; + impure_cmd = { + position = "command"; + expansion = "NIXPKGS_ALLOW_UNFREE=1 nix % --impure"; + }; + }; + + shellAliases = { + del = "trash_file"; + dev = "nix develop -c fish"; + doom = "~/.config/emacs/bin/doom"; + repl = "NIXPKGS_ALLOW_UNFREE=1 nix repl --impure --extra-experimental-features 'flakes' nixpkgs#legacyPackages.x86_64-linux"; + }; + + functions = { + fish_prompt.body = '' + set_color CC241D + echo '&' (set_color normal) + ''; + + fzf_edit.body = '' + fzf --multi --bind 'enter:become(nvim {+})' + ''; + + trash_file.body = '' + mv $argv ~/.local/share/Trash + ''; + + ya.body = '' + set tmp (mktemp -t "yazi-cwd.XXXXX") + yazi $argv --cwd-file="$tmp" + if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] + cd -- "$cwd" + end + rm -f -- "$tmp" + ''; + }; + }; +} diff --git a/.config/gamemode.ini b/shared/home-manager/dotfiles/gamemode.ini similarity index 98% rename from .config/gamemode.ini rename to shared/home-manager/dotfiles/gamemode.ini index 30a13ab..de3d6c0 100644 --- a/.config/gamemode.ini +++ b/shared/home-manager/dotfiles/gamemode.ini @@ -14,13 +14,13 @@ softrealtime=off ; GameMode can renice game processes. You can put any value between 0 and 20 here, the value ; will be negated and applied as a nice value (0 means no change). Defaults to 0. -renice=5 +renice=0 ; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value ; between 0 and 7 here (with 0 being highest priority), or one of the special values ; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority), ; currently, only the best-effort class is supported thus you cannot set it here -ioprio=2 +ioprio=reset ; Sets whether gamemode will inhibit the screensaver when active ; Defaults to 1 @@ -45,14 +45,14 @@ inhibit_screensaver=0 ;apply_gpu_optimisations=accept-responsibility ; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/ -;gpu_device=0 +;gpu_device=1 ; AMD specific settings ; Requires a relatively up to date AMDGPU kernel module ; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring ; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures ; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now -amd_performance_level=auto +;amd_performance_level=auto [supervisor] ; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for diff --git a/shared/home-manager/dotfiles/git.nix b/shared/home-manager/dotfiles/git.nix new file mode 100644 index 0000000..1d5ae80 --- /dev/null +++ b/shared/home-manager/dotfiles/git.nix @@ -0,0 +1,92 @@ +{ ... }: + +{ + # Enable GIT. + programs.git = { + enable = true; + lfs.enable = true; + + aliases = { + # List aliases + aliases = "config --get-regexp alias"; + + # List all the contributors with commit amount + contributors = "shortlog --summary --numbered"; + + # Output verbose info about branches and tags + branches = "branch -avv"; + + # List all tags + tags = "tag -l"; + + # Pretty logs + plog = "log --graph --decorate --all"; + + # Pretty grep + gcommit = "log --graph --decorate --grep"; + }; + + extraConfig = { + core = { + # Set the editor to be used by GIT + editor = "nvim"; + + # Custom .gitignore + excludesfile = "~/.gitignore"; + + # Treat trailing whitespaces and spaces before tabs as an error + whitespace = "space-before-tab,-indent-with-non-tab,trailing-space"; + }; + + color = { + # Use colors in GIT commmands. + ui = "auto"; + }; + + commit = { + # https://help.github.com/articles/signing-commits-using-gpg/ + gpgsign = true; + }; + + tag = { + gpgsign = true; + }; + + difftool = { + prompt = true; + }; + + mergetool = { + # https://www.git-scm.com/docs/git-mergetool#Documentation/git-mergetool.txt---no-prompt + prompt = false; + }; + + merge = { + # https://git-scm.com/docs/git-merge#_how_conflicts_are_presented + conflictstyle = "diff3"; + }; + + push = { + # https://stackoverflow.com/questions/21839651/git-what-is-the-difference-between-push-default-matching-and-simple + default = "simple"; + + # git-push pushes relevant annotated tags when pushing branches out + followTags = true; + }; + + user = { + name = "Alexandre Cavalheiro S. Tiago da Silva"; + email = "contact@thewizard.link"; + signingkey = "A1D3A2B4E14BD7C0445BB749A5767B54367CFBDF"; + }; + + pull = { + ff = "only"; + }; + + init = { + defaultBranch = "main"; + }; + }; + }; +} diff --git a/.config/mako/config b/shared/home-manager/dotfiles/mako/config similarity index 58% rename from .config/mako/config rename to shared/home-manager/dotfiles/mako/config index 0567279..4e59b13 100644 --- a/.config/mako/config +++ b/shared/home-manager/dotfiles/mako/config @@ -4,7 +4,7 @@ border-color=#282a36 border-radius=20 border-size=2 default-timeout=10000 -format=%s\n%b +format=%s\n%b group-by=summary height=125 icon-location=right @@ -17,7 +17,7 @@ text-color=#44475a width=300 [grouped] -format=%s\n%b +format=%s\n%b [mode=do-not-disturb] invisible=1 diff --git a/shared/home-manager/dotfiles/mangohud.nix b/shared/home-manager/dotfiles/mangohud.nix new file mode 100644 index 0000000..9dd6217 --- /dev/null +++ b/shared/home-manager/dotfiles/mangohud.nix @@ -0,0 +1,101 @@ +{ ... }: + +{ + programs.mangohud = { + enable = true; + + settings = { + # Limitations + fps_limit = 165; + #vsync = 1; # Disables VSync + #gl_vsync = 0; # - in OpenGL applications + + # GPU Statistics + gpu_core_clock = true; + gpu_fan = true; + gpu_junction_temp = true; + gpu_load_change = true; + gpu_load_color = [ + "39F900" + "FDFD09" + "B22222" + ]; + gpu_load_value = [ + 60 + 90 + ]; + gpu_mem_clock = true; + gpu_mem_temp = true; + gpu_power = true; + gpu_stats = true; + gpu_temp = true; + gpu_voltage = true; + + # CPU Statistics + cpu_load_change = true; + cpu_load_color = [ + "39F900" + "FDFD09" + "B22222" + ]; + cpu_load_value = [ + 60 + 90 + ]; + cpu_mhz = true; + cpu_power = true; + cpu_stats = true; + cpu_temp = true; + + # IO Statistics + io_read = true; + io_stats = true; + io_write = true; + + # RAM Statistics + ram = true; + swap = true; + vram = true; + + # FPS Statistics + fps = true; + fps_color_change = true; + fps_value = [ + 60 + 90 + ]; + fps_color = [ + "B22222" + "FDFD09" + "39F900" + ]; + frametime = true; + frame_timing = true; # Display graphs + histogram = true; # ^ + + # Show whether gamemode is enabled for the application. + gamemode = true; + + # Make so MangoHud starts hidden. + no_display = true; + + # Show whether the GPU is throttling. + throttling_status = true; + + # Show wine/proton version. + wine = true; + + # Show the vulkan driver in-use. + vulkan_driver = true; + + # Display the process' memory usage. + procmem = true; + + # Show the application's architecture. + arch = true; + + # Where to output log files. + output_folder = /home/wizardlink/.config/MangoHud; + }; + }; +} diff --git a/shared/home-manager/dotfiles/obs-studio.nix b/shared/home-manager/dotfiles/obs-studio.nix new file mode 100644 index 0000000..1a287af --- /dev/null +++ b/shared/home-manager/dotfiles/obs-studio.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: + +{ + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + input-overlay + obs-backgroundremoval + obs-gstreamer + obs-pipewire-audio-capture + obs-vkcapture + ]; + }; + + home.packages = [ + pkgs.obs-studio-plugins.obs-vkcapture + ]; +} diff --git a/shared/home-manager/dotfiles/qt5ct/Catppuccin-Frappe.conf b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Frappe.conf new file mode 100644 index 0000000..48e4169 --- /dev/null +++ b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Frappe.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ffc6d0f5, #ff292c3c, #ffa5adce, #ff949cbb, #ff51576d, #ff737994, #ffc6d0f5, #ffc6d0f5, #ffc6d0f5, #ff303446, #ff292c3c, #ff838ba7, #ff8caaee, #ff303446, #ff8caaee, #ffe78284, #ff303446, #ffc6d0f5, #ff232634, #ffc6d0f5, #80838ba7 +disabled_colors=#ffa5adce, #ff292c3c, #ffa5adce, #ff949cbb, #ff51576d, #ff737994, #ffa5adce, #ffa5adce, #ffa5adce, #ff303446, #ff292c3c, #ff838ba7, #ff626880, #ffb5bfe2, #ff8caaee, #ffe78284, #ff303446, #ffc6d0f5, #ff232634, #ffc6d0f5, #80838ba7 +inactive_colors=#ffc6d0f5, #ff292c3c, #ffa5adce, #ff949cbb, #ff51576d, #ff737994, #ffc6d0f5, #ffc6d0f5, #ffc6d0f5, #ff303446, #ff292c3c, #ff838ba7, #ff414559, #ffa5adcb, #ff8caaee, #ffe78284, #ff303446, #ffc6d0f5, #ff232634, #ffc6d0f5, #80838ba7 diff --git a/shared/home-manager/dotfiles/qt5ct/Catppuccin-Latte.conf b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Latte.conf new file mode 100644 index 0000000..42db9c5 --- /dev/null +++ b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Latte.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff1e66f5, #ffeff1f5, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 +disabled_colors=#ff6c6f85, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff6c6f85, #ff6c6f85, #ff6c6f85, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff9ca0b0, #ff5c5f77, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 +inactive_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ffccd0da, #ff6c6f85, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 diff --git a/shared/home-manager/dotfiles/qt5ct/Catppuccin-Macchiato.conf b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Macchiato.conf new file mode 100644 index 0000000..fdae012 --- /dev/null +++ b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Macchiato.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ffcad3f5, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ff24273a, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2 +disabled_colors=#ffa5adcb, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffa5adcb, #ffa5adcb, #ffa5adcb, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ff494d64, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2 +inactive_colors=#ffcdd6f4, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ffa5adcb, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2 diff --git a/shared/home-manager/dotfiles/qt5ct/Catppuccin-Mocha.conf b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Mocha.conf new file mode 100644 index 0000000..e566a63 --- /dev/null +++ b/shared/home-manager/dotfiles/qt5ct/Catppuccin-Mocha.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c diff --git a/shared/home-manager/dotfiles/rofi/catppuccin-frappe.rasi b/shared/home-manager/dotfiles/rofi/catppuccin-frappe.rasi new file mode 100644 index 0000000..79cb8dc --- /dev/null +++ b/shared/home-manager/dotfiles/rofi/catppuccin-frappe.rasi @@ -0,0 +1,111 @@ +* { + bg-col: #303446; + bg-col-light: #303446; + border-col: #303446; + selected-col: #303446; + blue: #8caaee; + fg-col: #c6d0f5; + fg-col2: #e78284; + grey: #737994; + + width: 600; + font: "IBM Plex Sans 14"; +} + +element-text, element-icon , mode-switcher { + background-color: inherit; + text-color: inherit; +} + +window { + height: 360px; + border: 3px; + border-color: @border-col; + background-color: @bg-col; +} + +mainbox { + background-color: @bg-col; +} + +inputbar { + children: [prompt,entry]; + background-color: @bg-col; + border-radius: 5px; + padding: 2px; +} + +prompt { + background-color: @blue; + padding: 6px; + text-color: @bg-col; + border-radius: 3px; + margin: 20px 0px 0px 20px; +} + +textbox-prompt-colon { + expand: false; + str: ":"; +} + +entry { + padding: 6px; + margin: 20px 0px 0px 10px; + text-color: @fg-col; + background-color: @bg-col; +} + +listview { + border: 0px 0px 0px; + padding: 6px 0px 0px; + margin: 10px 0px 0px 20px; + columns: 2; + lines: 5; + background-color: @bg-col; +} + +element { + padding: 5px; + background-color: @bg-col; + text-color: @fg-col ; +} + +element-icon { + size: 25px; +} + +element selected { + background-color: @selected-col ; + text-color: @fg-col2 ; +} + +mode-switcher { + spacing: 0; + } + +button { + padding: 10px; + background-color: @bg-col-light; + text-color: @grey; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +button selected { + background-color: @bg-col; + text-color: @blue; +} + +message { + background-color: @bg-col-light; + margin: 2px; + padding: 2px; + border-radius: 5px; +} + +textbox { + padding: 6px; + margin: 20px 0px 0px 20px; + text-color: @blue; + background-color: @bg-col-light; +} diff --git a/shared/home-manager/dotfiles/rofi/default.nix b/shared/home-manager/dotfiles/rofi/default.nix new file mode 100644 index 0000000..ea802ae --- /dev/null +++ b/shared/home-manager/dotfiles/rofi/default.nix @@ -0,0 +1,28 @@ +{ pkgs, ... }: + +{ + programs.rofi = { + enable = true; + package = pkgs.rofi-wayland; + + font = "IBM Plex Sans"; + + extraConfig = { + disable-history = false; + display-Network = " 󰤨 Network"; + display-drun = "  Apps "; + display-run = "  Run "; + display-window = " 﩯 Window"; + drun-display-format = "{icon} {name}"; + hide-scrollbar = true; + icon-theme = "Papirus-Dark"; + location = 0; + modi = "run,drun,window"; + show-icons = true; + sidebar-mode = true; + terminal = "alacritty"; + }; + + theme = ./catppuccin-frappe.rasi; + }; +} diff --git a/shared/home-manager/dotfiles/spotify/default.nix b/shared/home-manager/dotfiles/spotify/default.nix new file mode 100644 index 0000000..9ae1c18 --- /dev/null +++ b/shared/home-manager/dotfiles/spotify/default.nix @@ -0,0 +1,19 @@ +{ pkgs, spicetify-nix, ... }: + +let + spicePkgs = spicetify-nix.legacyPackages.${pkgs.system}; +in +{ + imports = [ spicetify-nix.homeManagerModules.default ]; + + programs.spicetify = { + enable = true; + theme = spicePkgs.themes.catppuccin; + colorScheme = "frappe"; + + enabledExtensions = with spicePkgs.extensions; [ + autoVolume + shuffle + ]; + }; +} diff --git a/shared/home-manager/dotfiles/tmux/default.nix b/shared/home-manager/dotfiles/tmux/default.nix new file mode 100644 index 0000000..0e67e98 --- /dev/null +++ b/shared/home-manager/dotfiles/tmux/default.nix @@ -0,0 +1,25 @@ +{ pkgs, ... }: + +{ + programs.tmux = { + enable = true; + clock24 = true; + keyMode = "vi"; + terminal = "screen-256color"; + + extraConfig = '' + # Fix colors + set -sg terminal-overrides ",*:RGB" + ''; + + plugins = with pkgs.tmuxPlugins; [ + { + plugin = catppuccin; + extraConfig = '' + # Set theme + set -g @catppuccin_flavour 'frappe' + ''; + } + ]; + }; +} diff --git a/shared/home-manager/dotfiles/waybar.nix b/shared/home-manager/dotfiles/waybar.nix new file mode 100644 index 0000000..0f58e50 --- /dev/null +++ b/shared/home-manager/dotfiles/waybar.nix @@ -0,0 +1,205 @@ +{ ... }: +{ + programs.waybar = { + enable = true; + + settings = { + mainBar = { + layer = "top"; + margin = "10px 10px 0"; + height = 30; + + modules-left = [ "hyprland/workspaces" ]; + modules-center = [ "clock" ]; + modules-right = [ + "network" + "memory" + "cpu" + "temperature" + "battery" + "tray" + ]; + + "hyprland/workspaces" = { + format = "{icon}"; + + format-icons = { + active = ""; + default = ""; + empty = ""; + persistent = ""; + special = ""; + urgent = ""; + }; + }; + + clock = { + format = "{:%H:%M} "; + format-alt = "{:%A; %B %d, %Y (%R)} "; + tooltip-format = "{calendar}"; + calendar = { + mode = "month"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + on-click-right = "mode"; + format = { + months = "{}"; + days = "{}"; + weeks = "W{}"; + weekdays = "{}"; + today = "{}"; + }; + actions = { + on-click-backward = "tz_down"; + on-click-forward = "tz_up"; + on-click-right = "mode"; + on-scroll-down = "shift_down"; + on-scroll-up = "shift_up"; + }; + }; + }; + + network = { + interval = 5; + format = " {bandwidthUpBits} 󰇙 {bandwidthDownBits} "; + format-disconnected = " No connection"; + tooltip-format-wifi = " {essid} ({signalStrength}%)"; + }; + + memory = { + interval = 5; + format = " {percentage}%"; + states = { + warning = 70; + critical = 90; + }; + "tooltip-format" = " {used:0.1f}G/{total:0.1f}G"; + }; + + cpu = { + interval = 5; + tooltip = false; + format = " {usage}%"; + format-alt = " {load}"; + states = { + warning = 70; + critical = 90; + }; + }; + + temperature = { + critical-threshold = 90; + interval = 5; + format = "{icon} {temperatureC}°"; + format-icons = [ + "" + "" + "" + "" + "" + ]; + tooltip = false; + }; + + # Module configuration + battery = { + interval = 10; + states = { + warning = 30; + critical = 15; + }; + + format-time = "{H}:{M:02}"; + format = "{icon} {capacity}% ({time})"; + format-charging = " {capacity}% ({time})"; + format-charging-full = " {capacity}%"; + format-full = "{icon} {capacity}%"; + format-alt = "{icon} {power}W"; + format-icons = [ + "" + "" + "" + "" + "" + ]; + tooltip = false; + }; + + tray = { + icon-size = 18; + spacing = 10; + }; + }; + }; + + style = '' + /* Using https://github.com/catppuccin/catppuccin for color reference. */ + + /* Keyframes */ + @keyframes blink-critical { + to { + /*color: @white;*/ + background-color: @critical; + } + } + + * { + all: unset; + color: #c6d0f5; + font-family: "IBM Plex Sans", 'Courier New', Courier, monospace; + font-size: 14px; + } + + .modules-left, + .modules-right, + .modules-center { + padding: 0 20px; + border-radius: 10px; + background-color: rgba(48, 52, 70, 0.85); + } + + tooltip { + background-color: rgba(48, 52, 70, 0.85); + border-radius: 10px; + padding: 8px; + } + + tooltip label { + color: #c6d0f5; + } + + #workspaces { + margin-left: -5px; + padding-left: 0px; + } + + #workspaces button { + margin: 0 8px; + } + + #workspaces button:hover { + background: #414559; + border: none; + } + + #clock { + padding: 0 10px; + } + + #network, #cpu, #memory, #temperature { + margin: 0 8px; + } + + #tray { + margin-left: 8px; + } + + #tray menu { + background-color: rgba(48, 52, 70, 0.85); + border-radius: 10px; + padding: 8px; + } + ''; + }; +} diff --git a/shared/home-manager/gaming.nix b/shared/home-manager/gaming.nix new file mode 100644 index 0000000..86bb334 --- /dev/null +++ b/shared/home-manager/gaming.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }: + +{ + + home.file = { + # Configuration for gamemode, for running games with optimizations. + ".config/gamemode.ini".source = ./dotfiles/gamemode.ini; + + # Configure DXVK + ".config/dxvk.conf".text = '' + dxvk.enableGraphicsPipelineLibrary = Auto + ''; + }; + + home.packages = with pkgs; [ + gamescope + heroic + protontricks + r2modman + wineWowPackages.stableFull + winetricks + + # Games + openttd + prismlauncher + shattered-pixel-dungeon + xonotic + ]; +} diff --git a/.local/share/scripts/create_feedback_sink.sh b/shared/home-manager/scripts/create_feedback_sink.sh similarity index 100% rename from .local/share/scripts/create_feedback_sink.sh rename to shared/home-manager/scripts/create_feedback_sink.sh diff --git a/.local/share/scripts/delete_feedback_sink.sh b/shared/home-manager/scripts/delete_feedback_sink.sh similarity index 100% rename from .local/share/scripts/delete_feedback_sink.sh rename to shared/home-manager/scripts/delete_feedback_sink.sh diff --git a/shared/home-manager/scripts/games/launch.sh b/shared/home-manager/scripts/games/launch.sh new file mode 100755 index 0000000..0754dfa --- /dev/null +++ b/shared/home-manager/scripts/games/launch.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# I've removed all environment variables +# but there might be useful ones in the future. +# https://docs.mesa3d.org/envvars.html + +obs-gamecapture mangohud gamemoderun "$@" diff --git a/shared/home-manager/theming.nix b/shared/home-manager/theming.nix new file mode 100644 index 0000000..0ae790d --- /dev/null +++ b/shared/home-manager/theming.nix @@ -0,0 +1,79 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + ibm-plex + nerd-fonts.blex-mono + nerd-fonts.symbols-only + libsForQt5.qtstyleplugin-kvantum + libsForQt5.qtwayland + qt6Packages.qtstyleplugin-kvantum + qt6Packages.qtwayland + ]; + + home.file = { + ## Kvantum's theme configuration. + ".config/Kvantum/catppuccin-frappe-lavender" = { + source = "${ + pkgs.catppuccin-kvantum.override { + accent = "lavender"; + variant = "frappe"; + } + }/share/Kvantum/catppuccin-frappe-lavender"; + }; + + ".config/Kvantum/kvantum.kvconfig".text = '' + [General] + theme=catppuccin-frappe-lavender + ''; + ## + + ## Theming configuration for qt5 and qt6 + ".config/qt5ct/colors".source = ./dotfiles/qt5ct; + + ".config/qt6ct/colors".source = ./dotfiles/qt5ct; # We use the qt5ct because it's the SAME spec + ## + + ".local/share/SpeedCrunch/color-schemes/catppuccin-frappe.json" = { + recursive = true; + source = builtins.fetchurl { + url = "https://raw.githubusercontent.com/catppuccin/speedcrunch/34f2b382de0188d2fd85f59a8a366f313fc30a71/themes/catppuccin-frappe.json"; + sha256 = "sha256:0imx5a53p3ls5kddplgr7mbpbidrmzl9qiwpv7r8jjmsf8yxs0i4"; + }; + }; + }; + + home.pointerCursor = { + package = pkgs.catppuccin-cursors.frappeLavender; + name = "catppuccin-frappe-lavender-cursors"; + + size = 24; + + gtk.enable = true; + x11.enable = true; + }; + + # Configure GTK. + gtk = { + enable = true; + + gtk3.extraConfig = { + gtk-application-prefer-dark-theme = true; + }; + + gtk4.extraConfig = { + gtk-application-prefer-dark-theme = true; + }; + + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme.override { color = "violet"; }; + }; + }; + + # Configure QT + qt = { + enable = true; + platformTheme.name = "qtct"; + }; +} diff --git a/shared/nixos/common.nix b/shared/nixos/common.nix new file mode 100644 index 0000000..f03844d --- /dev/null +++ b/shared/nixos/common.nix @@ -0,0 +1,70 @@ +{ pkgs, nixpkgs, ... }: + +{ + # Enable experimental features + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + + # Optimize storage + nix.optimise.automatic = true; + nix.settings.auto-optimise-store = true; + + # Pin the nix registry + nix.registry = { + nixpkgs.flake = nixpkgs; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # Enable nh, a bundle of CLI utilities for NixOS + programs.nh = { + enable = true; + + # Enable automatic garbage collection. + clean.enable = true; + clean.dates = "daily"; + clean.extraArgs = "--keep-since 4d --keep 3"; + + flake = "/home/wizardlink/.system"; + }; + + # Enable flatpak to all users. + services.flatpak.enable = true; + + environment.systemPackages = with pkgs; [ + ## Tools + # Utilities + bat + duf + fuseiso + lm_sensors + p7zip + tree + unrar + unzip + wget + zip + + # File managing + sshfs + yazi + + # Networking + gping + nmap + + # Processes + (btop.override { + # AMD GPU support + rocmSupport = true; + }) + killall + + # Filter + fzf + ripgrep + ]; +} diff --git a/shared/nixos/default.nix b/shared/nixos/default.nix new file mode 100644 index 0000000..7662091 --- /dev/null +++ b/shared/nixos/default.nix @@ -0,0 +1,12 @@ +{ ... }: + +{ + imports = [ + ./common.nix + ./desktop.nix + ./gaming.nix + ./hardware.nix + ./system.nix + ./virtualization.nix + ]; +} diff --git a/shared/nixos/desktop.nix b/shared/nixos/desktop.nix new file mode 100644 index 0000000..1a64096 --- /dev/null +++ b/shared/nixos/desktop.nix @@ -0,0 +1,109 @@ +{ + pkgs, + ... +}: + +{ + # Enable SDDM. + services.displayManager.sddm = { + enable = true; + wayland.enable = true; + theme = "catppuccin-frappe"; + package = pkgs.kdePackages.sddm; + }; + + # Enable XDG Desktop Portals. + xdg.portal = { + enable = true; + + config = { + common = { + default = [ "wlr" ]; + }; + }; + }; + + # Needed for home-manager + environment.pathsToLink = [ + "/share/xdg-desktop-portal" + "/share/applications" + ]; + + # Enable OpenGL. + hardware.graphics = { + enable = true; + enable32Bit = true; + + extraPackages = with pkgs; [ + rocmPackages.clr.icd # OpenGL hwa + ]; + }; + + # Set the default fonts for the system. + fonts.fontconfig = { + defaultFonts = { + serif = [ "IBM Plex Serif" ]; + sansSerif = [ "IBM Plex Sans" ]; + monospace = [ "IBM Plex Mono" ]; + }; + }; + + # Enable Thunar and it's dependencies + programs.thunar = { + enable = true; + plugins = with pkgs.xfce; [ thunar-archive-plugin ]; + }; + programs.xfconf.enable = true; # For configuring + services.gvfs.enable = true; # For mounting drives, trash, etc. + services.tumbler.enable = true; # Thumbnail support + + # Enable KDEConnect + programs.kdeconnect = { + enable = true; + package = pkgs.kdePackages.kdeconnect-kde; + }; + + # Enable the Fcitx5 IME + i18n.inputMethod = { + enable = true; + type = "fcitx5"; + + fcitx5 = { + addons = with pkgs; [ + fcitx5-mozc + fcitx5-gtk + fcitx5-catppuccin + ]; + + quickPhrase = { + proud = "<( ̄︶ ̄)>"; + }; + + waylandFrontend = true; + }; + }; + + environment.sessionVariables = { + # Set env for Fcitx5 + QMODIFIERS = "@im=fcitx5"; + }; + + environment.systemPackages = with pkgs; [ + wl-clipboard + xclip + zoxide + (catppuccin-sddm.override # So SDDM finds the theme files. + { + flavor = "frappe"; + font = "IBM Plex Sans"; + fontSize = "11"; + background = "${../../assets/sddm/Background.jpg}"; + loginBackground = true; + } + ) + + ## Libraries + libsForQt5.qt5.qtgraphicaleffects + libsForQt5.qt5.qtquickcontrols2 + ]; +} diff --git a/shared/nixos/gaming.nix b/shared/nixos/gaming.nix new file mode 100644 index 0000000..5ccdf3e --- /dev/null +++ b/shared/nixos/gaming.nix @@ -0,0 +1,28 @@ +{ pkgs, ... }: + +{ + # Enable Steam. + programs.steam = { + enable = true; + + remotePlay.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + # ^ Enables so we can transfer games to other computers in the network. + + # Add Proton-GE to 'compatibilitytools.d'. + extraCompatPackages = with pkgs; [ proton-ge-bin ]; + }; + + # Enable and configure gamemode. + programs.gamemode = { + enable = true; + enableRenice = true; + settings = { + gpu = { + apply_gpu_optimisations = "accept-responsibility"; + gpu_device = 1; + amd_performance_level = "auto"; + }; + }; + }; +} diff --git a/shared/nixos/hardware.nix b/shared/nixos/hardware.nix new file mode 100644 index 0000000..184f32f --- /dev/null +++ b/shared/nixos/hardware.nix @@ -0,0 +1,18 @@ +{ ... }: + +{ + # Add AMD drivers + boot.initrd.kernelModules = [ + "amdgpu" + ]; + + # Enable Bluetooth + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + }; + services.blueman.enable = true; + + # Enable fstrim for better ssd lifespan + services.fstrim.enable = true; +} diff --git a/shared/nixos/system.nix b/shared/nixos/system.nix new file mode 100644 index 0000000..8f22fe5 --- /dev/null +++ b/shared/nixos/system.nix @@ -0,0 +1,92 @@ +{ pkgs, config, ... }: + +{ + # Kernel + boot.kernelPackages = pkgs.linuxPackages_zen; + + boot.initrd.kernelModules = [ + "v4l2loopback" + "zenergy" + ]; + + boot.extraModulePackages = [ + config.boot.kernelPackages.v4l2loopback + config.boot.kernelPackages.zenergy # Allows fetching power draw information on AMD CPUs + ]; + + # Configure v4l2loopback + boot.extraModprobeConfig = '' + options v4l2loopback devices=1 video_nr=1 card_label="Virtual camera" exclusive_caps=1 + ''; + + # Bootloader. + boot.loader = { + systemd-boot = { + enable = true; + configurationLimit = 10; + }; + + efi.canTouchEfiVariables = true; + }; + + # Enables zram. + zramSwap.enable = true; + + # Enable networking + networking.networkmanager.enable = true; + + # Enable sound with pipewire. + services.pulseaudio.enable = false; + services.pipewire = { + enable = true; + audio.enable = true; + + alsa.enable = true; + alsa.support32Bit = true; + + pulse.enable = true; + }; + + # Enable fish system-wide to integrate with nixpkgs. + programs.fish.enable = true; + + # Set fish as the default shell for all users. + users.defaultUserShell = pkgs.fish; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # And the service that enables IPP Everywhere + services.avahi = { + enable = true; + nssmdns4 = true; + nssmdns6 = true; + openFirewall = true; + }; + + # Enable the OpenSSH daemon. + services.openssh = { + enable = true; + + settings = { + PasswordAuthentication = false; + PermitRootLogin = "no"; + StreamLocalBindUnlink = "yes"; + }; + }; + + # Enable GPG. + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # Enable polkit, + security.polkit.enable = true; + + # install an agent to interface with it, + environment.systemPackages = with pkgs; [ polkit_gnome ]; + + # And enable GNOME keyring for registering keys. + services.gnome.gnome-keyring.enable = true; +} diff --git a/shared/nixos/virtualization.nix b/shared/nixos/virtualization.nix new file mode 100644 index 0000000..6cec7a6 --- /dev/null +++ b/shared/nixos/virtualization.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: + +{ + # Enable Docker. + virtualisation.docker.enable = true; + + # Enable virt-manager + programs.virt-manager.enable = true; + + # Enable virtd and spice USB redirection + virtualisation.spiceUSBRedirection.enable = true; + virtualisation.libvirtd.enable = true; + + environment.systemPackages = with pkgs; [ + docker-compose + quickemu + ]; +}