diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..8793f13 --- /dev/null +++ b/.vimrc @@ -0,0 +1,35 @@ +set nocompatible " be iMproved, required +filetype off " required + +syntax on +colorscheme onedark + +" set the runtime path to include Vundle and initialize +set rtp+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +" let Vundle manage Vundle, required +Plugin 'VundleVim/Vundle.vim' + +" Plugins +Plugin 'godlygeek/tabular' +" Plugin 'preservim/vim-markdown' +Plugin 'vim-pandoc/vim-pandoc' +Plugin 'vim-pandoc/vim-pandoc-syntax' +Plugin 'WolfgangMehner/latex-support' + + +call vundle#end() " required +filetype plugin indent on " required + +set number relativenumber + +nnoremap :tabprevious +nnoremap :tabnext +nnoremap :tabprevious +nnoremap :tabnext +nnoremap :tabclose + +:command Ttp !pdflatex %:t + +set shell=/bin/bash diff --git a/LICENSE b/LICENSE index 7cacbe2..1b9dc39 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 William Hergès. +Copyright (c) 2022 William H. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 5884ea3..15652cd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,46 @@ # dotfiles -My personnal dotfiles of my workstation powered by The Void, Sway and fish. +This is my personnal dotfiles. +## Installation + +To install the dotfiles, follow this steps: + +1. Clone the repo +```bash +git clone https://github.com/anhgelus/dotfiles.git +``` +2. Go inside the new dotfiles folder +3. Run the install.sh +```bash +sh install.sh +``` +4. Put your desktop wallpaper inside `~/Images/wallpapers/wallpaper.jpg` and your LightDM wallpaper inside `/usr/share/anhgelus/lightdm-wallpaper.jpg` +5. Restart and it works! + + +## Versioning + +The versioning of this repository do not follow the semver because the semver is just useless for this usage. + +Every tag of this repository must follow these guidelines: +1. DD[.patch]-month-YYYY +2. "[\*]" is not a required part +3. "DD" is for the day (number) +4. "path" is for the path number +5. "month" is for the month (full letters) +6. "YYYY" is for the year (number" + +`15.1-march-2023` is for the second version of the 03/15/2023 (MM-DD-YYYY) or 15/03/2023 (DD-MM-YYYY) + +## Technologies + +> WM: `i3` +> +> Lockscreen: `LightDM` +> +> OS: `EndeavourOs` +> +> Packet Manager: `yay`, `flatpak` and `snap` +> +> Other: `picom jonaburg_fix` ([here](https://github.com/Arian8j2/picom-jonaburg-fix)), `polybar` and `rofi` diff --git a/config/fish/completions/bun.fish b/config/fish/completions/bun.fish deleted file mode 100644 index e262bb6..0000000 --- a/config/fish/completions/bun.fish +++ /dev/null @@ -1,186 +0,0 @@ -# This is terribly complicated -# It's because: -# 1. bun run has to have dynamic completions -# 2. there are global options -# 3. bun {install add remove} gets special options -# 4. I don't know how to write fish completions well -# Contributions very welcome!! - -function __fish__get_bun_bins - string split ' ' (bun getcompletes b) -end - -function __fish__get_bun_scripts - set -lx SHELL bash - set -lx MAX_DESCRIPTION_LEN 40 - string trim (string split '\n' (string split '\t' (bun getcompletes z))) -end - -function __fish__get_bun_packages - if test (commandline -ct) != "" - set -lx SHELL fish - string split ' ' (bun getcompletes a (commandline -ct)) - end -end - -function __history_completions - set -l tokens (commandline --current-process --tokenize) - history --prefix (commandline) | string replace -r \^$tokens[1]\\s\* "" | string replace -r \^$tokens[2]\\s\* "" | string split ' ' -end - -function __fish__get_bun_bun_js_files - string split ' ' (bun getcompletes j) -end - -set -l bun_install_boolean_flags yarn production optional development no-save dry-run force no-cache silent verbose global -set -l bun_install_boolean_flags_descriptions "Write a yarn.lock file (yarn v1)" "Don't install devDependencies" "Add dependency to optionalDependencies" "Add dependency to devDependencies" "Don't update package.json or save a lockfile" "Don't install anything" "Always request the latest versions from the registry & reinstall all dependencies" "Ignore manifest cache entirely" "Don't output anything" "Excessively verbose logging" "Use global folder" - -set -l bun_builtin_cmds_without_run dev create help bun upgrade discord install remove add init pm x -set -l bun_builtin_cmds_accepting_flags create help bun upgrade discord run init link unlink pm x - -function __bun_complete_bins_scripts --inherit-variable bun_builtin_cmds_without_run -d "Emit bun completions for bins and scripts" - # Do nothing if we already have a builtin subcommand, - # or any subcommand other than "run". - if __fish_seen_subcommand_from $bun_builtin_cmds_without_run - or not __fish_use_subcommand && not __fish_seen_subcommand_from run - return - end - # Do we already have a bin or script subcommand? - set -l bins (__fish__get_bun_bins) - if __fish_seen_subcommand_from $bins - return - end - # Scripts have descriptions appended with a tab separator. - # Strip off descriptions for the purposes of subcommand testing. - set -l scripts (__fish__get_bun_scripts) - if __fish_seen_subcommand_from (string split \t -f 1 -- $scripts) - return - end - # Emit scripts. - for script in $scripts - echo $script - end - # Emit binaries and JS files (but only if we're doing `bun run`). - if __fish_seen_subcommand_from run - for bin in $bins - echo "$bin"\t"package bin" - end - for file in (__fish__get_bun_bun_js_files) - echo "$file"\t"Bun.js" - end - end -end - - -# Clear existing completions -complete -e -c bun - -# Dynamically emit scripts and binaries -complete -c bun -f -a "(__bun_complete_bins_scripts)" - -# Complete flags if we have no subcommand or a flag-friendly one. -set -l flag_applies "__fish_use_subcommand; or __fish_seen_subcommand_from $bun_builtin_cmds_accepting_flags" -complete -c bun \ - -n $flag_applies --no-files -s 'u' -l 'origin' -r -d 'Server URL. Rewrites import paths' -complete -c bun \ - -n $flag_applies --no-files -s 'p' -l 'port' -r -d 'Port number to start server from' -complete -c bun \ - -n $flag_applies --no-files -s 'd' -l 'define' -r -d 'Substitute K:V while parsing, e.g. --define process.env.NODE_ENV:\"development\"' -complete -c bun \ - -n $flag_applies --no-files -s 'e' -l 'external' -r -d 'Exclude module from transpilation (can use * wildcards). ex: -e react' -complete -c bun \ - -n $flag_applies --no-files -l 'use' -r -d 'Use a framework (ex: next)' -complete -c bun \ - -n $flag_applies --no-files -l 'hot' -r -d 'Enable hot reloading in Bun\'s JavaScript runtime' - -# Complete dev and create as first subcommand. -complete -c bun \ - -n "__fish_use_subcommand" -a 'dev' -d 'Start dev server' -complete -c bun \ - -n "__fish_use_subcommand" -a 'create' -f -d 'Create a new project from a template' - -# Complete "next" and "react" if we've seen "create". -complete -c bun \ - -n "__fish_seen_subcommand_from create" -a 'next' -d 'new Next.js project' - -complete -c bun \ - -n "__fish_seen_subcommand_from create" -a 'react' -d 'new React project' - -# Complete "upgrade" as first subcommand. -complete -c bun \ - -n "__fish_use_subcommand" -a 'upgrade' -d 'Upgrade bun to the latest version' -x -# Complete "-h/--help" unconditionally. -complete -c bun \ - -s "h" -l "help" -d 'See all commands and flags' -x - -# Complete "-v/--version" if we have no subcommand. -complete -c bun \ - -n "not __fish_use_subcommand" -l "version" -s "v" -d 'Bun\'s version' -x - -# Complete additional subcommands. -complete -c bun \ - -n "__fish_use_subcommand" -a 'discord' -d 'Open bun\'s Discord server' -x - - -complete -c bun \ - -n "__fish_use_subcommand" -a 'bun' -d 'Generate a new bundle' - - -complete -c bun \ - -n "__fish_seen_subcommand_from bun" -F -d 'Bundle this' - -complete -c bun \ - -n "__fish_seen_subcommand_from create; and __fish_seen_subcommand_from react next" -F -d "Create in directory" - - -complete -c bun \ - -n "__fish_use_subcommand" -a 'init' -F -d 'Start an empty Bun project' - -complete -c bun \ - -n "__fish_use_subcommand" -a 'install' -f -d 'Install packages from package.json' - -complete -c bun \ - -n "__fish_use_subcommand" -a 'add' -F -d 'Add a package to package.json' - -complete -c bun \ - -n "__fish_use_subcommand" -a 'remove' -F -d 'Remove a package from package.json' - - -for i in (seq (count $bun_install_boolean_flags)) - complete -c bun \ - -n "__fish_seen_subcommand_from install add remove" -l "$bun_install_boolean_flags[$i]" -d "$bun_install_boolean_flags_descriptions[$i]" -end - -complete -c bun \ - -n "__fish_seen_subcommand_from install add remove" -l 'cwd' -d 'Change working directory' - -complete -c bun \ - -n "__fish_seen_subcommand_from install add remove" -l 'cache-dir' -d 'Choose a cache directory (default: $HOME/.bun/install/cache)' - -complete -c bun \ - -n "__fish_seen_subcommand_from add" -d 'Popular' -a '(__fish__get_bun_packages)' - -complete -c bun \ - -n "__fish_seen_subcommand_from add" -d 'History' -a '(__history_completions)' - -complete -c bun \ - -n "__fish_seen_subcommand_from pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) cache;" -a 'bin ls cache hash hash-print hash-string' -f - -complete -c bun \ - -n "__fish_seen_subcommand_from pm; and __fish_seen_subcommand_from cache; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts);" -a 'rm' -f - -# Add built-in subcommands with descriptions. -complete -c bun -n "__fish_use_subcommand" -a "create" -f -d "Create a new project from a template" -complete -c bun -n "__fish_use_subcommand" -a "build bun" --require-parameter -F -d "Transpile and bundle one or more files" -complete -c bun -n "__fish_use_subcommand" -a "upgrade" -d "Upgrade Bun" -complete -c bun -n "__fish_use_subcommand" -a "run" -d "Run a script or package binary" -complete -c bun -n "__fish_use_subcommand" -a "install" -d "Install dependencies from package.json" -f -complete -c bun -n "__fish_use_subcommand" -a "remove" -d "Remove a dependency from package.json" -f -complete -c bun -n "__fish_use_subcommand" -a "add" -d "Add a dependency to package.json" -f -complete -c bun -n "__fish_use_subcommand" -a "init" -d "Initialize a Bun project in this directory" -f -complete -c bun -n "__fish_use_subcommand" -a "link" -d "Register or link a local npm package" -f -complete -c bun -n "__fish_use_subcommand" -a "unlink" -d "Unregister a local npm package" -f -complete -c bun -n "__fish_use_subcommand" -a "pm" -d "Additional package management utilities" -f -complete -c bun -n "__fish_use_subcommand" -a "x" -d "Execute a package binary, installing if needed" -f -complete -c bun -n "__fish_use_subcommand" -a "outdated" -d "Display the latest versions of outdated dependencies" -f -complete -c bun -n "__fish_use_subcommand" -a "publish" -d "Publish your package from local to npm" -f diff --git a/config/fish/completions/packwiz.fish b/config/fish/completions/packwiz.fish deleted file mode 100644 index b4fdb11..0000000 --- a/config/fish/completions/packwiz.fish +++ /dev/null @@ -1,177 +0,0 @@ -# fish completion for packwiz -*- shell-script -*- - -function __packwiz_debug - set -l file "$BASH_COMP_DEBUG_FILE" - if test -n "$file" - echo "$argv" >> $file - end -end - -function __packwiz_perform_completion - __packwiz_debug "Starting __packwiz_perform_completion" - - # Extract all args except the last one - set -l args (commandline -opc) - # Extract the last arg and escape it in case it is a space - set -l lastArg (string escape -- (commandline -ct)) - - __packwiz_debug "args: $args" - __packwiz_debug "last arg: $lastArg" - - # Disable ActiveHelp which is not supported for fish shell - set -l requestComp "PACKWIZ_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg" - - __packwiz_debug "Calling $requestComp" - set -l results (eval $requestComp 2> /dev/null) - - # Some programs may output extra empty lines after the directive. - # Let's ignore them or else it will break completion. - # Ref: https://github.com/spf13/cobra/issues/1279 - for line in $results[-1..1] - if test (string trim -- $line) = "" - # Found an empty line, remove it - set results $results[1..-2] - else - # Found non-empty line, we have our proper output - break - end - end - - set -l comps $results[1..-2] - set -l directiveLine $results[-1] - - # For Fish, when completing a flag with an = (e.g., -n=) - # completions must be prefixed with the flag - set -l flagPrefix (string match -r -- '-.*=' "$lastArg") - - __packwiz_debug "Comps: $comps" - __packwiz_debug "DirectiveLine: $directiveLine" - __packwiz_debug "flagPrefix: $flagPrefix" - - for comp in $comps - printf "%s%s\n" "$flagPrefix" "$comp" - end - - printf "%s\n" "$directiveLine" -end - -# This function does two things: -# - Obtain the completions and store them in the global __packwiz_comp_results -# - Return false if file completion should be performed -function __packwiz_prepare_completions - __packwiz_debug "" - __packwiz_debug "========= starting completion logic ==========" - - # Start fresh - set --erase __packwiz_comp_results - - set -l results (__packwiz_perform_completion) - __packwiz_debug "Completion results: $results" - - if test -z "$results" - __packwiz_debug "No completion, probably due to a failure" - # Might as well do file completion, in case it helps - return 1 - end - - set -l directive (string sub --start 2 $results[-1]) - set --global __packwiz_comp_results $results[1..-2] - - __packwiz_debug "Completions are: $__packwiz_comp_results" - __packwiz_debug "Directive is: $directive" - - set -l shellCompDirectiveError 1 - set -l shellCompDirectiveNoSpace 2 - set -l shellCompDirectiveNoFileComp 4 - set -l shellCompDirectiveFilterFileExt 8 - set -l shellCompDirectiveFilterDirs 16 - - if test -z "$directive" - set directive 0 - end - - set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2) - if test $compErr -eq 1 - __packwiz_debug "Received error directive: aborting." - # Might as well do file completion, in case it helps - return 1 - end - - set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2) - set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2) - if test $filefilter -eq 1; or test $dirfilter -eq 1 - __packwiz_debug "File extension filtering or directory filtering not supported" - # Do full file completion instead - return 1 - end - - set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2) - set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2) - - __packwiz_debug "nospace: $nospace, nofiles: $nofiles" - - # If we want to prevent a space, or if file completion is NOT disabled, - # we need to count the number of valid completions. - # To do so, we will filter on prefix as the completions we have received - # may not already be filtered so as to allow fish to match on different - # criteria than the prefix. - if test $nospace -ne 0; or test $nofiles -eq 0 - set -l prefix (commandline -t | string escape --style=regex) - __packwiz_debug "prefix: $prefix" - - set -l completions (string match -r -- "^$prefix.*" $__packwiz_comp_results) - set --global __packwiz_comp_results $completions - __packwiz_debug "Filtered completions are: $__packwiz_comp_results" - - # Important not to quote the variable for count to work - set -l numComps (count $__packwiz_comp_results) - __packwiz_debug "numComps: $numComps" - - if test $numComps -eq 1; and test $nospace -ne 0 - # We must first split on \t to get rid of the descriptions to be - # able to check what the actual completion will be. - # We don't need descriptions anyway since there is only a single - # real completion which the shell will expand immediately. - set -l split (string split --max 1 \t $__packwiz_comp_results[1]) - - # Fish won't add a space if the completion ends with any - # of the following characters: @=/:., - set -l lastChar (string sub -s -1 -- $split) - if not string match -r -q "[@=/:.,]" -- "$lastChar" - # In other cases, to support the "nospace" directive we trick the shell - # by outputting an extra, longer completion. - __packwiz_debug "Adding second completion to perform nospace directive" - set --global __packwiz_comp_results $split[1] $split[1]. - __packwiz_debug "Completions are now: $__packwiz_comp_results" - end - end - - if test $numComps -eq 0; and test $nofiles -eq 0 - # To be consistent with bash and zsh, we only trigger file - # completion when there are no other completions - __packwiz_debug "Requesting file completion" - return 1 - end - end - - return 0 -end - -# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves -# so we can properly delete any completions provided by another script. -# Only do this if the program can be found, or else fish may print some errors; besides, -# the existing completions will only be loaded if the program can be found. -if type -q "packwiz" - # The space after the program name is essential to trigger completion for the program - # and not completion of the program name itself. - # Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish. - complete --do-complete "packwiz " > /dev/null 2>&1 -end - -# Remove any pre-existing completions for the program since we will be handling all of them. -complete -c packwiz -e - -# The call to __packwiz_prepare_completions will setup __packwiz_comp_results -# which provides the program's completion choices. -complete -c packwiz -n '__packwiz_prepare_completions' -f -a '$__packwiz_comp_results' - diff --git a/config/fish/config.fish b/config/fish/config.fish deleted file mode 100644 index f335a9e..0000000 --- a/config/fish/config.fish +++ /dev/null @@ -1,14 +0,0 @@ -if status is-interactive - # Commands to run in interactive sessions can go here - if tty | string match "/dev/tty1" - $HOME/start - end -end - -# bun -set --export BUN_INSTALL "$HOME/.bun" -set --export GOPATH "$HOME/go" -set --export PATH $BUN_INSTALL/bin $GOPATH/bin $HOME/.local/bin $PATH - -# gpg -export GPG_TTY=$(tty) diff --git a/config/fish/fish_variables b/config/fish/fish_variables deleted file mode 100644 index 74b1ee1..0000000 --- a/config/fish/fish_variables +++ /dev/null @@ -1,31 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR __fish_initialized:3800 -SETUVAR fish_color_autosuggestion:brblack -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:normal -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:white\x1e\x2d\x2dbackground\x3dbrblack -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 fish_key_bindings:fish_default_key_bindings -SETUVAR fish_pager_color_completion:normal -SETUVAR fish_pager_color_description:yellow\x1e\x2di -SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline -SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr diff --git a/config/fish/functions/fish_greeting.fish b/config/fish/functions/fish_greeting.fish deleted file mode 100644 index 8e20ca8..0000000 --- a/config/fish/functions/fish_greeting.fish +++ /dev/null @@ -1,21 +0,0 @@ -function fish_greeting - if not set -q fish_greeting - set -l line1 (printf (_ 'Welcome to %sanhgelus-void%s.') (set_color "#95d5b2" green) (set_color normal)) - set -l line2 \n(printf (_ 'Workstation powered by the %svoid%s.') (set_color green) (set_color normal)) - set -g fish_greeting "$line1$line2" - end - - if set -q fish_private_mode - set -l line (_ "fish is running in private mode, history will not be persisted.") - if set -q fish_greeting[1] - set -g fish_greeting $fish_greeting\n$line - else - set -g fish_greeting $line - end - end - - # The greeting used to be skipped when fish_greeting was empty (not just undefined) - # Keep it that way to not print superfluous newlines on old configuration - test -n "$fish_greeting" - and echo $fish_greeting -end diff --git a/config/fish/functions/fish_prompt.fish b/config/fish/functions/fish_prompt.fish deleted file mode 100644 index 65b9830..0000000 --- a/config/fish/functions/fish_prompt.fish +++ /dev/null @@ -1,34 +0,0 @@ -# name: Default -# author: Lily Ballard - -function fish_prompt --description 'Write out the prompt' - set -l last_pipestatus $pipestatus - set -lx __fish_last_status $status # Export for __fish_print_pipestatus. - set -l normal (set_color normal) - set -q fish_color_status - or set -g fish_color_status red - - # Color the prompt differently when we're root - set -l color_cwd "#ffd6ff" - set -l suffix '>' - if functions -q fish_is_root_user; and fish_is_root_user - if set -q fish_color_cwd_root - set color_cwd $fish_color_cwd_root - end - set suffix '#' - end - - # Write pipestatus - # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it. - set -l bold_flag --bold - set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation - if test $__fish_prompt_status_generation = $status_generation - set bold_flag - end - set __fish_prompt_status_generation $status_generation - set -l status_color (set_color $fish_color_status) - set -l statusb_color (set_color $bold_flag $fish_color_status) - set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus) - - echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " -end diff --git a/config/fish/functions/prompt_login.fish b/config/fish/functions/prompt_login.fish deleted file mode 100644 index e80b8e1..0000000 --- a/config/fish/functions/prompt_login.fish +++ /dev/null @@ -1,28 +0,0 @@ -function prompt_login --description "display user name for the prompt" - if not set -q __fish_machine - set -g __fish_machine - set -l debian_chroot $debian_chroot - - if test -r /etc/debian_chroot - set debian_chroot (cat /etc/debian_chroot) - end - - if set -q debian_chroot[1] - and test -n "$debian_chroot" - set -g __fish_machine "(chroot:$debian_chroot)" - end - end - - # Prepend the chroot environment if present - if set -q __fish_machine[1] - echo -n -s (set_color yellow) "$__fish_machine" (set_color normal) ' ' - end - - # If we're running via SSH, change the host color. - set -l color_host "#95d5b2" - if set -q SSH_TTY; and set -q fish_color_host_remote - set color_host $fish_color_host_remote - end - - echo -n -s (set_color "#ffd6ff" green) "$USER" (set_color normal) @ (set_color $color_host) (prompt_hostname) (set_color normal) -end diff --git a/config/i3/config b/config/i3/config new file mode 100644 index 0000000..a8d65bd --- /dev/null +++ b/config/i3/config @@ -0,0 +1,517 @@ +font pango: Noto Sans Regular 10 + +# set the mod key to the winkey: +set $mod Mod4 +set $wallpaper = ~/Images/wallpapers/sky-like-ghibli.png + +##################### +# workspace layout: # +##################### + +# default i3 tiling mode: +workspace_layout default + +# i3 stacking layout: +# Each window will be fullscreen and tabbed top to bottom. +#workspace_layout stacking + +# i3 tabbed layout: +# Each new window will open fullscreen as a tab (left to right) +#workspace_layout tabbed + +############################## +# extra options for windows: # +############################## + +#border indicator on windows: +new_window pixel 1 + +# thin borders +# hide_edge_borders both + +# Set inner/outer gaps +gaps inner 10 +gaps outer 30 + +# show window title bars (not officially supported with i3gaps) +#default_border normal +default_border pixel 2 + +# window title alignment +#title_align center + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# switch/iterate between workspaces +bindsym $mod+Tab workspace next +bindsym $mod+Shift+Tab workspace prev + +# switch to workspace +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 +bindsym $mod+9 workspace $ws9 +bindsym $mod+0 workspace $ws10 + +# switch to workspace with numpad keys +bindcode $mod+87 workspace 1 +bindcode $mod+88 workspace 2 +bindcode $mod+89 workspace 3 +bindcode $mod+83 workspace 4 +bindcode $mod+84 workspace 5 +bindcode $mod+85 workspace 6 +bindcode $mod+79 workspace 7 +bindcode $mod+80 workspace 8 +bindcode $mod+81 workspace 9 +bindcode $mod+90 workspace 10 + +# switch to workspace with numlock numpad keys +bindcode $mod+Mod2+87 workspace $ws1 +bindcode $mod+Mod2+88 workspace $ws2 +bindcode $mod+Mod2+89 workspace $ws3 +bindcode $mod+Mod2+83 workspace $ws4 +bindcode $mod+Mod2+84 workspace $ws5 +bindcode $mod+Mod2+85 workspace $ws6 +bindcode $mod+Mod2+79 workspace $ws7 +bindcode $mod+Mod2+80 workspace $ws8 +bindcode $mod+Mod2+81 workspace $ws9 +bindcode $mod+Mod2+90 workspace $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5 +bindsym $mod+Shift+6 move container to workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8 +bindsym $mod+Shift+9 move container to workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws10 + +# move focused container to workspace with numpad keys +bindcode $mod+Shift+Mod2+87 move container to workspace $ws1 +bindcode $mod+Shift+Mod2+88 move container to workspace $ws2 +bindcode $mod+Shift+Mod2+89 move container to workspace $ws3 +bindcode $mod+Shift+Mod2+83 move container to workspace $ws4 +bindcode $mod+Shift+Mod2+84 move container to workspace $ws5 +bindcode $mod+Shift+Mod2+85 move container to workspace $ws6 +bindcode $mod+Shift+Mod2+79 move container to workspace $ws7 +bindcode $mod+Shift+Mod2+80 move container to workspace $ws8 +bindcode $mod+Shift+Mod2+81 move container to workspace $ws9 +bindcode $mod+Shift+Mod2+90 move container to workspace $ws10 + +# move focused container to workspace with numpad keys +bindcode $mod+Shift+87 move container to workspace $ws1 +bindcode $mod+Shift+88 move container to workspace $ws2 +bindcode $mod+Shift+89 move container to workspace $ws3 +bindcode $mod+Shift+83 move container to workspace $ws4 +bindcode $mod+Shift+84 move container to workspace $ws5 +bindcode $mod+Shift+85 move container to workspace $ws6 +bindcode $mod+Shift+79 move container to workspace $ws7 +bindcode $mod+Shift+80 move container to workspace $ws8 +bindcode $mod+Shift+81 move container to workspace $ws9 +bindcode $mod+Shift+90 move container to workspace $ws10 + +# resize window (you can also use the mouse for that): +mode "resize" { +# These bindings trigger as soon as you enter the resize mode +# Pressing left will shrink the window's width. +# Pressing right will grow the window's width. +# Pressing up will shrink the window's height. +# Pressing down will grow the window's height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym i resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + +# same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + +# back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +###################################### +# keybindings for different actions: # +###################################### + +# start a terminal +bindsym $mod+Return exec alacritty + +# kill focused window +bindsym $mod+q kill + +# reload the configuration file +bindsym $mod+Shift+c reload + +# restart i3 inplace (preserves your layout/session, can be used to update i3) +bindsym $mod+Shift+r restart + +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+i focus up +bindsym $mod+l focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+i move up +bindsym $mod+Shift+l move right + +# alternatively, you can use the cursor 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 + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+g layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# open new empty workspace +bindsym $mod+Shift+n exec ~/.config/i3/scripts/empty_workspace + +# Multimedia Keys + +# volume +bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks +bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks + +# gradular volume control +bindsym $mod+XF86AudioRaiseVolume exec amixer -D pulse sset Master 1%+ && pkill -RTMIN+1 i3blocks +bindsym $mod+XF86AudioLowerVolume exec amixer -D pulse sset Master 1%- && pkill -RTMIN+1 i3blocks + +# mute +bindsym XF86AudioMute exec amixer sset Master toggle && killall -USR1 i3blocks + +# audio control +bindsym XF86AudioPlay exec playerctl play +bindsym XF86AudioPause exec playerctl pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + +## App shortcuts +bindsym $mod+w exec /usr/bin/vivaldi-stable +bindsym $mod+n exec /usr/bin/thunar + +########################################## +# configuration for workspace behaviour: # +########################################## + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +set $ws2 "2" +set $ws1 "1" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# use workspaces on different displays: +# where you have to replace VGA-0/HDMI-0 with the names for your displays +# you can get from xrandr command +workspace $ws1 output HDMI-0 +workspace $ws4 output DP-5 +workspace $ws3 output DP-5 +workspace $ws10 output DP-5 +#workspace $ws3 output HDMI-0 +#workspace $ws4 output HDMI-0 +#workspace $ws5 output HDMI-0 + +# bind program to workspace and focus to them on startup: +assign [class="alacritty"] $ws1 +assign [class="(?i)firefox"] $ws3 +assign [class="Vivaldi-stable"] $ws3 +assign [class="discord"] $ws4 +assign [class="Spotify"] $ws10 +assign [class="spotify"] $ws10 +assign [class="Ymuse"] $ws10 +assign [class="jetbrains-phpstorm"] $ws1 +assign [class="jetbrains-goland"] $ws1 +assign [class="jetbrains-idea"] $ws1 + +# automatic set focus new window if it opens on another workspace then the current: +for_window [class=Xfce4-terminal] focus +for_window [class=Vivaldi-stable] focus +for_window [class=Thunar] focus + +############################################# +# autostart applications/services on login: # +############################################# + +#get auth work with polkit-gnome +exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 + +# dex execute .desktop files + apps using /etc/xdg/autostart. +# when second to i3 a DE is installed or mixed usage of i3 + xfce4 or GNOME +# in this cases better disable dex and use manual starting apps using xdg/autostart +# if enabled you should comment welcome app. +# https://github.com/jceb/dex +#exec --no-startup-id dex -a -s /etc/xdg/autostart/:~/.config/autostart/ +exec --no-startup-id dex --autostart --environment i3 + +# start welcome app +#exec --no-startup-id sh /usr/share/endeavouros/scripts/welcome --startdelay=3 + +# num lock activated +#exec --no-startup-id numlockx on + +# configure multiple keyboard layouts and hotkey to switch (Alt+CAPSLOCK in this example) +#exec --no-startup-id setxkbmap -layout 'us,sk' -variant altgr-intl,qwerty -option 'grp:alt_caps_toggle' + +# start conky: +#exec_always --no-startup-id conky + +# start a script to setup displays +# uncomment the next line, use arandr to setup displays and save the file as monitor: +#exec --no-startup-id ~/.screenlayout/monitor.sh + +# set wallpaper +#exec --no-startup-id sleep 2 && nitrogen --restore +exec_always --no-startup-id feh --bg-fill $wallpaper + +# set powersavings for display: +exec --no-startup-id xset s 480 dpms 600 600 600 + +# disable power saving (for example if using xscreensaver) +#exec --no-startup-id xset -dpms + +# use xautolock to use autosuspend rules for mobile devices +# https://wiki.archlinux.org/title/Session_lock#xautolock +#exec --no-startup-id xautolock -time 60 -locker "systemctl suspend" + + +# xscreensaver +# https://www.jwz.org/xscreensaver +#exec --no-startup-id xscreensaver --no-splash + +# Desktop notifications +exec --no-startup-id dbus-launch dunst --config ~/.config/dunst/dunstrc +# alternative if you installed aside with XFCE4: +# exec --no-startup-id /usr/lib/xfce4/notifyd/xfce4-notifyd & + +# autotiling script +# https://github.com/nwg-piotr/autotiling +# `yay -S autotiling ;) (it is in AUR) +#exec_always --no-startup-id autotiling + +# Autostart apps as you like +#exec --no-startup-id sleep 2 && xfce4-terminal +#exec --no-startup-id sleep 3 && thunar + +############### +# system tray # +############### +# if you do not use dex: exec --no-startup-id dex --autostart --environment i3 +# you need to have tray apps started manually one by one: + +# start blueberry app for managing bluetooth devices from tray: +#exec --no-startup-id blueberry-tray + +# networkmanager-applet +#exec --no-startup-id nm-applet + +# clipman-applet +#exec --no-startup-id xfce4-clipman + +################## +# floating rules # +################## + +# set size of floating window +#for_window [window_role="(?i)GtkFileChooserDialog"] resize set 640 480 #to set size of file choose dialog +#for_window [class=".*"] resize set 640 480 #to change size of all floating windows + +# set position of floating window +#for_window [class=".*"] move position center + +###################################### +# color settings for bar and windows # +###################################### + +# Define colors variables: +set $darkbluetrans #08052be6 +set $darkblue #08052b +set $lightblue #5294e2 +set $urgentred #e53935 +set $white #ffffff +set $black #000000 +set $purple #e345ff +set $darkgrey #383c4a +set $grey #b0b5bd +set $mediumgrey #8b8b8b +set $yellowbrown #e1b700 + +set_from_resource $fg i3wm.color7 #f0f0f0 +set_from_resource $bg i3wm.color4 #f0f0f0 +set_from_resource $nbg i3wm.color1 #f0f0f0 + +# define colors for windows: +# class border backgr. text indicator child_border +client.focused $bg $bg $fg $bg $bg +client.focused_inactive $bg $bg $fg $bg $bg +client.unfocused $nbg $bg $fg $bg $nbg +client.urgent $bg $bg $fg $bg $bg +client.placeholder $bg $bg $fg $bg $bg + +client.background $bg + +############################################ +# bar settings (input comes from i3blocks) # +############################################ + +# Start i3bar to display a workspace bar +# (plus the system information i3status finds out, if available) +#bar { +# font pango: Noto Sans Regular 10 + #status_command $HOME/.config/polybar/launch.sh +# position top +# i3bar_command $HOME/.config/polybar/launch.sh +# it could be that you have no primary display set: set one (xrandr --output --primary) +# reference: https://i3wm.org/docs/userguide.html#_tray_output +# tray_output primary +# tray_padding 0 + +# When strip_workspace_numbers is set to yes, +# any workspace that has a name of the form +# “[n][:][NAME]” will display only the name. +#strip_workspace_numbers yes +##strip_workspace_name no + +# colors { +# separator $purple +# background $darkgrey +# statusline $white +# border bg txt indicator +# focused_workspace $mediumgrey $grey $darkgrey $purple +# active_workspace $lightblue $mediumgrey $darkgrey $purple +# inactive_workspace $darkgrey $darkgrey $grey $purple +# urgent_workspace $urgentred $urgentred $white $purple +# } +#} + +# you can add different bars for multidisplay setups on each display: +# set output HDMI-0 to the display you want the bar, --transparency can be set. +# Transparency needs rgba color codes to be used where the last two letters are the transparency factor see here: +# https://gist.github.com/lopspower/03fb1cc0ac9f32ef38f4 +# #08052be6 --> e6=90% + +# bar { +# font pango: Noto Sans Regular 10 +# status_command i3blocks -c ~/.config/i3/i3blocks-2.conf +# i3bar_command i3bar --transparency +# output HDMI-0 +# position bottom +# +# When strip_workspace_numbers is set to yes, +# any workspace that has a name of the form +# “[n][:][NAME]” will display only the name. +#strip_workspace_numbers yes +##strip_workspace_name no +# +# colors { +# separator $purple +# background $darkbluetrans +# statusline $white +# border bg txt indicator +# focused_workspace $lighterblue $lighterblue $darkblue $purple +# active_workspace $lightdblue $lightdblue $darkblue $purple +# inactive_workspace $darkblue $darkblue $lightdblue $purple +# urgent_workspace $urgentred $urgentred $white $purple +# } +#} + +##################################### +# Application menu handled by rofi: # +##################################### + +## rofi bindings fancy application menu ($mod+d /F9 optional disabled) + +# bindsym $mod+d exec rofi -modi drun -show drun \ +# -config ~/.config/rofi/rofidmenu.rasi + +# bindsym F9 exec rofi -modi drun -show drun \ +# -config ~/.config/rofi/rofidmenu.rasi + +## rofi bindings for window menu ($mod+t /F10 optional disabled) + +bindsym $mod+d exec --no-startup-id ~/.config/rofi/launchers/type-1/launcher.sh +bindsym $mod+Shift+e exec --no-startup-id ~/.config/rofi/powermenu/type-1/powermenu.sh + +# bindsym F10 exec rofi -show window \ +# -config ~/.config/rofi/rofidmenu.rasi + +## rofi bindings to manage clipboard (install rofi-greenclip from the AUR) + +#exec --no-startup-id greenclip daemon>/dev/null +# bindsym $mod+c exec --no-startup-id rofi -modi "clipboard:greenclip print" -show clipboard \ +# -config ~/.config/rofi/rofidmenu.rasi +exec_always --no-startup-id xrandr --output DP-0 --off --output DP-1 --off --output DP-2 --off --output DP-3 --off --output HDMI-0 -r 144.00 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output DP-4 --off --output DP-5 -r 74.97 --mode 1920x1080 --pos 1920x0 --rotate normal + +# Polybar +exec_always --no-startup-id killall -q polybar +exec_always --no-startup-id sleep 1 && sh $HOME/.config/polybar/colorblocks/launch-main.sh +exec_always --no-startup-id sleep 1 && sh $HOME/.config/polybar/colorblocks/launch-external.sh + +exec_always --no-startup-id killall -q picom +exec_always --no-startup-id sleep 3 && picom --config ~/.config/picom/picom.conf + +# run applications +exec spotify +exec vivaldi-stable +exec flatpak run com.discordapp.Discord +exec wal -i $wallpaper -n + +# Commands for screenshot +# Screenshot +bindsym Print exec --no-startup-id maim "/home/$USER/Images/$(date).png" +bindsym $mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) "/home/$USER/Images/$(date).png" +bindsym Shift+Print exec --no-startup-id maim -s -u "/home/$USER/Images/$(date).png" + +## Clipboard Screenshots +bindsym Ctrl+Print exec --no-startup-id maim | xclip -selection clipboard -t image/png +bindsym Ctrl+$mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png +bindsym Ctrl+Shift+Print exec --no-startup-id maim -s -u | xclip -selection clipboard -t image/png -i diff --git a/config/nvim/init.lua b/config/nvim/init.lua deleted file mode 100644 index 1b37a46..0000000 --- a/config/nvim/init.lua +++ /dev/null @@ -1,4 +0,0 @@ -require('options') -require('plugin') -require('colorscheme') -require('keybindings') diff --git a/config/nvim/init.vim.bp b/config/nvim/init.vim similarity index 81% rename from config/nvim/init.vim.bp rename to config/nvim/init.vim index 1861949..e178b6e 100644 --- a/config/nvim/init.vim.bp +++ b/config/nvim/init.vim @@ -29,26 +29,11 @@ Plugin 'https://github.com/neoclide/coc.nvim' " Autocompletions " Plugin 'https://github.com/terryma/vim-multiple-cursors' " CTRL + N for multiple cursors Plugin 'https://github.com/mattn/emmet-vim' " Emmet support Plugin 'rubixninja314/vim-mcfunction' " mcfunction -" Plugin 'sirver/ultisnips' -" let g:UltiSnipsExpandTrigger = '' -" let g:UltiSnipsJumpForwardTrigger = '' -" let g:UltiSnipsJumpBackwardTrigger = '' -"Plugin 'lervag/vimtex' -" let g:tex_flavor='latex' -" let g:vimtex_view_method='zathura' -" let g:vimtex_quickfix_mode=0 -" set conceallevel=1 -" let g:tex_conceal='abdmg' -Plugin 'catppuccin/vim' " theme -Plugin 'vimpostor/vim-prism' " theme -Plugin 'elixir-editors/vim-elixir' " elixir -Plugin 'mhinz/vim-mix-format' " elixir format -Plugin 'neovim/nvim-lspconfig' " elixir language server call vundle#end() " required filetype plugin indent on " required -:colorscheme prism +:colorscheme onedark :set number relativenumber :set autoindent @@ -95,9 +80,7 @@ let g:airline_symbols.linenr = '' :command Ttp !pdflatex %:t "" JS/TS/Node -:command NpmInstall !npm install -:command TscWatch !npm run ts-watch -:command NodemonStart !npm run start +:command NpmInstall !pnpm i "" Git :command -nargs=1 -bar GitignoreCreate !curl https://www.toptal.com/developers/gitignore/api/ | tee -a .gitignore @@ -111,8 +94,10 @@ inoremap pumvisible() ? coc#_select_confirm() : "" set shell=/bin/bash + " Highlight augroup twig_ft au! autocmd BufNewFile,BufRead *.mcfunction set syntax=mcfunction augroup END + diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json deleted file mode 100644 index f7cb91a..0000000 --- a/config/nvim/lazy-lock.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" }, - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "7f0bf635082bb9b7d2b37766054526a6ccafdb85" }, - "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, - "monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "cea666ef965884414b1b71f6b39a537f9238bdb2" }, - "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lspconfig": { "branch": "master", "commit": "f0c6ccf43997a1c7e9ec4aea36ffbf2ddd9f15ef" }, - "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, - "vim-elixir": { "branch": "master", "commit": "6dff29176eb35e025bc94b262bf6d4e517e11f7d" }, - "vim-mix-format": { "branch": "master", "commit": "01a31ef82aa52697d589574da50723980eeae456" } -} diff --git a/config/nvim/lua/colorscheme.lua b/config/nvim/lua/colorscheme.lua deleted file mode 100644 index f9f6ce6..0000000 --- a/config/nvim/lua/colorscheme.lua +++ /dev/null @@ -1,7 +0,0 @@ -local colorscheme = 'monokai_pro' - -local is_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme) -if not is_ok then - vim.notify('colorscheme ' .. colorscheme .. ' not found!') - return -end diff --git a/config/nvim/lua/options.lua b/config/nvim/lua/options.lua deleted file mode 100644 index a937c38..0000000 --- a/config/nvim/lua/options.lua +++ /dev/null @@ -1,22 +0,0 @@ -vim.opt.completeopt = {'menu', 'menuone', 'noselect'} - -vim.opt.tabstop = 4 -- number of visual spaces per TAB -vim.opt.softtabstop = 4 -- number of spacesin tab when editing -vim.opt.shiftwidth = 4 -- insert 4 spaces on a tab -vim.opt.expandtab = true -- tabs are spaces, mainly because of python - -vim.opt.number = true -- show absolute number -vim.opt.relativenumber = true -- add numbers to each line on the left side -vim.opt.cursorline = true -- highlight cursor line underneath the cursor horizontally -vim.opt.splitbelow = true -- open new vertical split bottom -vim.opt.splitright = true -- open new horizontal splits right - -vim.opt.incsearch = true -- search as characters are entered -vim.opt.ignorecase = true -- ignore case in searches by default -vim.opt.smartcase = true -- but make it case sensitive if an uppercase is entered - -vim.filetype.add({ - extension = { - heex = 'eelixir' - } -}) diff --git a/config/nvim/lua/plugin.lua b/config/nvim/lua/plugin.lua deleted file mode 100644 index d88d9ac..0000000 --- a/config/nvim/lua/plugin.lua +++ /dev/null @@ -1,18 +0,0 @@ -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not (vim.uv or vim.loop).fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable release - lazypath, - }) -end -vim.opt.rtp:prepend(lazypath) - --- This is also a good place to setup other settings (vim.opt) -vim.g.mapleader = " " -vim.g.maplocalleader = "\\" - -require("lazy").setup("plugins") diff --git a/config/nvim/lua/plugins/blink.lua b/config/nvim/lua/plugins/blink.lua deleted file mode 100644 index b69b537..0000000 --- a/config/nvim/lua/plugins/blink.lua +++ /dev/null @@ -1,84 +0,0 @@ -return { - { - "saghen/blink.cmp", - -- optional: provides snippets for the snippet source - dependencies = { "rafamadriz/friendly-snippets" }, - - -- Use a release tag to download pre-built binaries - version = "*", - -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust - -- build = 'cargo build --release', - -- If you use nix, you can build from source using the latest nightly rust with: - -- build = 'nix run .#build-plugin', - - opts = { - -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) - -- 'super-tab' for mappings similar to VSCode (tab to accept) - -- 'enter' for enter to accept - -- 'none' for no mappings - -- - -- All presets have the following mappings: - -- C-space: Open menu or open docs if already open - -- C-n/C-p or Up/Down: Select next/previous item - -- C-e: Hide menu - -- C-k: Toggle signature help (if signature.enabled = true) - -- - -- See :h blink-cmp-config-keymap for defining your own keymap - keymap = { - -- Each keymap may be a list of commands and/or functions - preset = "enter", - -- Select completions - [""] = { "select_prev", "fallback" }, - [""] = { "select_next", "fallback" }, - [""] = { "select_next", "fallback" }, - [""] = { "select_prev", "fallback" }, - -- Scroll documentation - [""] = { "scroll_documentation_up", "fallback" }, - [""] = { "scroll_documentation_down", "fallback" }, - -- Show/hide signature - [""] = { "show_signature", "hide_signature", "fallback" }, - }, - - appearance = { - -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' - -- Adjusts spacing to ensure icons are aligned - nerd_font_variant = "mono", - }, - - sources = { - -- `lsp`, `buffer`, `snippets`, `path`, and `omni` are built-in - -- so you don't need to define them in `sources.providers` - default = { "lsp", "path", "snippets", "buffer" }, - - -- Sources are configured via the sources.providers table - }, - - -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance - -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, - -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` - -- - -- See the fuzzy documentation for more information - fuzzy = { implementation = "prefer_rust_with_warning" }, - completion = { - -- The keyword should only match against the text before - keyword = { range = "prefix" }, - menu = { - -- Use treesitter to highlight the label text for the given list of sources - draw = { - treesitter = { "lsp" }, - }, - }, - -- Show completions after typing a trigger character, defined by the source - trigger = { show_on_trigger_character = true }, - documentation = { - -- Show documentation automatically - auto_show = true, - }, - }, - - -- Signature help when tying - signature = { enabled = true }, - }, - opts_extend = { "sources.default" }, - } -} diff --git a/config/nvim/lua/plugins/colorscheme.lua b/config/nvim/lua/plugins/colorscheme.lua deleted file mode 100644 index 457a3ec..0000000 --- a/config/nvim/lua/plugins/colorscheme.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - "tanvirtin/monokai.nvim" -} diff --git a/config/nvim/lua/plugins/elixir.lua b/config/nvim/lua/plugins/elixir.lua deleted file mode 100644 index 5ab5662..0000000 --- a/config/nvim/lua/plugins/elixir.lua +++ /dev/null @@ -1,4 +0,0 @@ -return { - "elixir-editors/vim-elixir", - "mhinz/vim-mix-format" -} diff --git a/config/nvim/lua/plugins/lsp.lua b/config/nvim/lua/plugins/lsp.lua deleted file mode 100644 index 1a3a64a..0000000 --- a/config/nvim/lua/plugins/lsp.lua +++ /dev/null @@ -1,21 +0,0 @@ -return { - { - "neovim/nvim-lspconfig", - config = function() - local lspconfig = require("lspconfig") - - lspconfig.pylsp.setup({}) - end, - }, - { "mason-org/mason.nvim", opts = {} }, - { - "mason-org/mason-lspconfig.nvim", - dependencies = { - "mason-org/mason.nvim", - "neovim/nvim-lspconfig", - }, - opts = { - ensure_installed = { "pylsp", "elixirls" }, - }, - }, -} diff --git a/config/picom/picom.conf b/config/picom/picom.conf new file mode 100644 index 0000000..0d505bc --- /dev/null +++ b/config/picom/picom.conf @@ -0,0 +1,58 @@ +## Shadow +shadow = true; +no-dnd-shadow = true; +no-dock-shadow = false; +clear-shadow = true; +shadow-radius = 12; +shadow-offset-x = -17; +shadow-offset-y = -7; +shadow-opacity = 0.5; + +## fading +fading = true; +fade-delta = 0.25; +fade-in-step = 0.02; +fade-out-step = 0.02; +fade-exclude = [ +]; + +## opacity +active-opacity = 0.9; +inactive-opacity = 0.6; +frame-opacity = 0.7; +opacity-rule = [ + "100:name *= 'Minecraft'", + "100:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FULLSCREEN'", + "100:_NET_WM_STATE@[1]:32a = '_NET_WM_STATE_FULLSCREEN'", + "100:_NET_WM_STATE@[2]:32a = '_NET_WM_STATE_FULLSCREEN'", + "100:_NET_WM_STATE@[3]:32a = '_NET_WM_STATE_FULLSCREEN'", + "100:_NET_WM_STATE@[4]:32a = '_NET_WM_STATE_FULLSCREEN'" +]; + +## other +backend = "glx"; +mark-wmwin-focused = true; +mark-ovredir-focused = true; +detect-rounded-corners = true; +detect-client-opacity = true; +vsync = false; +dbe = false; +paint-on-overlay = true; +detect-transient = true; +detect-client-leader = true; +invert-color-include = [ ]; +glx-copy-from-front = false; +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; }; +}; +corner-radius = 5.0; + +## blur +blur-background = true; +blur-background-frame = false; +blur-background-fixed = false; +blur-kern = "3x3gaussian"; +blur-method = "dual_kawase"; +blur-strength = 10; +blur-background-exclude = [ "class_g = 'slop'", "class_g = 'Peek'", "class_g = 'kdeconnect.daemon'", "window_type = 'desktop'" ]; diff --git a/config/polybar/blocks/bars.ini b/config/polybar/blocks/bars.ini new file mode 100644 index 0000000..c245f34 --- /dev/null +++ b/config/polybar/blocks/bars.ini @@ -0,0 +1,600 @@ +;; ┌────────────────────────────────────────────────────┐ +;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▄░█▀█░█▀▄░█▀▀│ +;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█▀▄░█▀█░█▀▄░▀▀█│ +;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀░░▀░▀░▀░▀░▀▀▀│ +;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░│ +;; └────────────────────────────────────────────────────┘ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar] +fill = ⏽ +empty = ⏽ +indicator = ⏽ +; Nerd font :   ,  ⏽,  樂 籠 錄 , 雷 絛 + +[module/volume] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; (default) +; +; +format-volume = +format-volume-prefix =  +format-volume-prefix-padding = 1 +format-volume-prefix-background = ${color.blue} +format-volume-prefix-foreground = ${color.foreground} +format-volume-background = ${color.background-alt} +format-volume-foreground = ${color.foreground} +format-volume-overline = ${color.background} +format-volume-underline = ${color.background} + +; Available tags: +; (default) +; +; +format-muted = +format-muted-prefix =  +format-muted-prefix-padding = 1 +format-muted-prefix-background = ${color.red} +format-muted-overline = ${color.background} +format-muted-underline = ${color.background} + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% +label-volume-background = ${color.background-alt} +label-volume-padding = 1 + +; Available tokens: +; %percentage% (default +label-muted = "Muted" +label-muted-foreground = ${color.foreground} +label-muted-background = ${color.background-alt} +label-muted-padding = 1 + +; Only applies if is used +ramp-volume-0 =  +ramp-volume-1 =  +ramp-volume-2 =  +ramp-volume-background = ${color.blue} +ramp-volume-padding = 1 + +; Only applies if is used +bar-volume-format = " %fill%%indicator%%empty% " +bar-volume-width = 10 +bar-volume-gradient = false + +bar-volume-indicator = ${bar.indicator} +bar-volume-indicator-foreground = ${color.foreground} + +bar-volume-fill = ${bar.fill} +bar-volume-foreground-0 = ${color.foreground} +bar-volume-foreground-1 = ${color.foreground} +bar-volume-foreground-2 = ${color.foreground} + +bar-volume-empty = ${bar.empty} +bar-volume-empty-foreground = ${color.gray} + +; If defined, it will replace when +; headphones are plugged in to `headphone_control_numid` +; If undefined, will be used for both +; Only applies if is used +ramp-headphones-0 =  +ramp-headphones-background = ${color.blue} +ramp-headphones-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +;type = internal/xbacklight +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +;card = intel_backlight +card = amdgpu_bl0 + +; Available tags: +;