├── .gitignore ├── Code └── User │ ├── keybinds.json │ └── settings.json ├── Hibernation.md ├── README.md ├── alacritty └── alacritty.toml ├── applications ├── hibernate.desktop ├── shutdown.desktop └── suspend.desktop ├── bin ├── auto_tmux ├── mush └── set_wallpaper ├── btrfs.md ├── cargo └── config.toml ├── electron-flags.conf ├── fastfetch └── config.jsonc ├── genswap ├── hypr ├── activate_edp ├── close_lid ├── full-screenshot ├── hypridle.conf ├── hyprland.conf ├── hyprlock.conf ├── hyprpaper.conf ├── open_lid ├── screen-share-startup ├── screenshot ├── sunamu_start ├── switch_monitor └── wallpapers │ ├── Clearnight.jpg │ ├── Cloudsnight.jpg │ ├── Rainnight.jpg │ ├── background.jpeg │ ├── lock.png │ ├── night_city.png │ ├── wall_city.jpeg │ ├── wallpaper.png │ ├── wallpaper2.png │ ├── wallpaper3.jpg │ ├── wallpaper4.png │ ├── wallpaper_street.png │ ├── wallpaper_street_blur.png │ └── wallpaper_triangle.png ├── i3 ├── config └── setoutput ├── icomoon.zip ├── install ├── nvim ├── .neoconf.json ├── .stylua.toml ├── init.lua ├── lazy-lock.json ├── lua │ ├── community.lua │ ├── lazy_setup.lua │ ├── plugins │ │ ├── astroui.lua │ │ ├── catppuccin.lua │ │ └── user.lua │ └── polish.lua ├── neovim.yml └── selene.toml ├── omf ├── bundle ├── channel └── theme ├── pacman.conf ├── picom └── picom.conf ├── polybar ├── colors.ini ├── config.ini ├── modules │ ├── audio.ini │ ├── misc.ini │ ├── network.ini │ ├── sys_info.ini │ └── util.ini └── scripts │ └── polybarstart.sh ├── ranger ├── rc.conf ├── rifle.conf └── scope.sh ├── rofi ├── config.rasi └── mocha-icons.rasi ├── screenshots ├── P1.webp ├── P2.webp ├── P3.webp ├── P4.webp └── P5.webp ├── secure-arch ├── 00_basic_system_installation.md ├── 01_ui.md ├── 02_basic_hardening.md └── README.md ├── swaync ├── config.json └── style.css ├── tmux.conf ├── waybar ├── config.jsonc ├── scripts │ ├── caway │ ├── checkupdates │ └── pacman-update-icon.sh └── style.css ├── zathura ├── catppuccin-mocha └── zathurarc ├── zed ├── keymap.json ├── settings.json └── themes │ ├── catppuccin-mauve.json │ ├── custom-blur.json │ └── custom-catppuccin.json └── zshrc /.gitignore: -------------------------------------------------------------------------------- 1 | icomoon/ 2 | -------------------------------------------------------------------------------- /Code/User/keybinds.json: -------------------------------------------------------------------------------- 1 | // Place your key bindings in this file to override the defaultsauto[] 2 | [ 3 | { 4 | "key": "ctrl+unknown", 5 | "command": "workbench.action.terminal.toggleTerminal", 6 | "when": "terminal.active" 7 | }, 8 | { 9 | "key": "ctrl+k ctrl+shift+o", 10 | "command": "workbench.action.debug.start", 11 | "when": "debuggersAvailable && debugState == 'inactive'" 12 | }, 13 | { 14 | "key": "f5", 15 | "command": "-workbench.action.debug.start", 16 | "when": "debuggersAvailable && debugState == 'inactive'" 17 | } 18 | ] -------------------------------------------------------------------------------- /Code/User/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "zenMode.hideLineNumbers": false, 3 | "zenMode.centerLayout": false, 4 | "zenMode.hideStatusBar": false, 5 | "editor.fontFamily": "FiraCode Nerd Font", 6 | "explorer.confirmDelete": false, 7 | "terminal.integrated.cursorStyle": "line", 8 | "git.confirmSync": false, 9 | "workbench.startupEditor": "none", 10 | "workbench.preferredDarkColorTheme": "Catppuccin Mocha", 11 | "telemetry.telemetryLevel": "off", 12 | "vim.leader": " ", 13 | "vim.hlsearch": true, 14 | "vim.useSystemClipboard": true, 15 | "vim.smartRelativeLine": true, 16 | "vim.insertModeKeyBindingsNonRecursive": [ 17 | { 18 | "before": [""], 19 | "commands": ["editor.action.inlineSuggest.hide"] 20 | } 21 | ], 22 | "vim.normalModeKeyBindingsNonRecursive": [ 23 | { 24 | "before": ["", "o"], 25 | "commands": ["workbench.action.toggleSidebarVisibility"] 26 | }, 27 | { 28 | "before": ["", "l", "b"], 29 | "commands": ["workbench.action.toggleActivityBarVisibility"] 30 | }, 31 | { 32 | "before": ["", "e"], 33 | "commands": ["workbench.view.explorer"] 34 | }, 35 | { 36 | "before": ["", "h"], 37 | "commands": ["outline.focus"] 38 | }, 39 | { 40 | "before": ["", "r", "r"], 41 | "commands": ["editor.action.rename"] 42 | }, 43 | { 44 | "before": ["", "l", "a"], 45 | "commands": ["editor.action.quickFix"] 46 | }, 47 | { 48 | "before": ["", "c"], 49 | "commands": ["workbench.action.closeActiveEditor"] 50 | }, 51 | { 52 | "before": ["", "/"], 53 | "commands": ["editor.action.commentLine"] 54 | }, 55 | { 56 | "before": ["", "t", "v"], 57 | "commands": ["workbench.action.terminal.toggleTerminal"] 58 | }, 59 | { 60 | "before": ["K"], 61 | "commands": ["editor.action.showHover"] 62 | }, 63 | { 64 | "before": ["", "f", "f"], 65 | "commands": ["workbench.action.showCommands"] 66 | }, 67 | { 68 | "before": ["", "f", "o"], 69 | "commands": ["workbench.action.quickOpen"] 70 | }, 71 | { 72 | "before": ["", "p", "s"], 73 | "commands": ["extension.fuzzySearch"] 74 | }, 75 | { 76 | "before": ["", "n"], 77 | "commands": ["workbench.action.files.newUntitledFile"] 78 | }, 79 | { 80 | "before": ["", "d", "b"], 81 | "commands": ["editor.debug.action.toggleBreakpoint"] 82 | }, 83 | { 84 | "before": ["", "d", "c"], 85 | "commands": ["workbench.action.debug.start"] 86 | }, 87 | { 88 | "before": ["", "d", "n"], 89 | "commands": ["workbench.action.debug.continue"] 90 | }, 91 | { 92 | "before": ["", "d", "r"], 93 | "commands": ["workbench.action.debug.run"] 94 | }, 95 | { 96 | "before": ["", "g"], 97 | "commands": ["workbench.view.scm"] 98 | }, 99 | { 100 | "before": ["", "a", "f"], 101 | "commands": ["explorer.newFolder"] 102 | }, 103 | { 104 | "before": ["", "a", "a"], 105 | "commands": ["explorer.newFile"] 106 | }, 107 | { 108 | "before": ["", "/"], 109 | "commands": ["editor.action.commentLine"] 110 | } 111 | ], 112 | "[rust]": { 113 | "editor.defaultFormatter": "rust-lang.rust-analyzer", 114 | "editor.formatOnSave": true 115 | }, 116 | "search.useGlobalIgnoreFiles": true, 117 | "notebook.output.textLineLimit": 100, 118 | "editor.fontWeight": "600", 119 | "editor.inlineSuggest.enabled": true, 120 | "github.copilot.enable": { 121 | "*": true, 122 | "plaintext": false, 123 | "markdown": true, 124 | "scminput": false, 125 | "yaml": false, 126 | "python": true, 127 | "typescript": true, 128 | "rust": true, 129 | "vue": false 130 | }, 131 | "svelte.enable-ts-plugin": true, 132 | "update.showReleaseNotes": false, 133 | "git.openRepositoryInParentFolders": "always", 134 | "github.copilot.editor.enableAutoCompletions": true, 135 | "javascript.updateImportsOnFileMove.enabled": "always", 136 | "workbench.editor.tabActionCloseVisibility": false, 137 | "workbench.experimental.enableNewProfilesUI": true, 138 | "window.dialogStyle": "custom", 139 | "window.titleBarStyle": "custom", 140 | "editor.minimap.enabled": false, 141 | "notebook.lineNumbers": "on", 142 | "editor.fontSize": 13, 143 | "workbench.iconTheme": "catppuccin-mocha", 144 | "workbench.productIconTheme": "material-product-icons", 145 | "cmake.pinnedCommands": [ 146 | "workbench.action.tasks.configureTaskRunner", 147 | "workbench.action.tasks.runTask" 148 | ], 149 | "extensions.ignoreRecommendations": true, 150 | "explorer.excludeGitIgnore": true, 151 | "catppuccin.italicComments": false, 152 | "catppuccin.italicKeywords": false, 153 | "cmake.showOptionsMovedNotification": false, 154 | "window.menuBarVisibility": "compact", 155 | "chat.editor.fontFamily": "FiraCode Nerd Font", 156 | "debug.console.fontFamily": "FiraCode Nerd Font", 157 | "workbench.colorTheme": "Catppuccin Mocha" 158 | } 159 | -------------------------------------------------------------------------------- /Hibernation.md: -------------------------------------------------------------------------------- 1 | # How to enable hibernation 2 | 3 | This doc assumes you followed the installation guide on [Secure-Arch](https://github.com/AlvaroParker/secure-arch/tree/main) (credits to [Ataraxxia](https://github.com/Ataraxxia)). This means you have Arch installed with a Unified Kernel Image, encrypted with LVM and secure boot enabled. 4 | 5 | ## Creating a swapfile 6 | 7 | The first things you'll need to enable hibernation on this specific configuration is to create a swap file. I don't like using swap partitions simply because that would imply I'll have to encrypt that partition as well and I don't want to read the docs to do that. 8 | 9 | So, following the Arch Linux wiki on [swap files](https://wiki.archlinux.org/title/Swap#Swap_file), we can create a new one by doing: 10 | 11 | ``` 12 | # mkswap -U clear --size 12G --file /swapfile 13 | ``` 14 | 15 | I'll choose `12G` becuase my current laptop has roughly `6G`. The general rule to choose swap size is: 16 | 17 | - 2 GB or less of RAM: Swap should be at least 2x the amount of RAM. 18 | - 2 GB to 8 GB of RAM: Swap can be equal to the amount of RAM or up to 1.5x the RAM. 19 | - 8 GB to 16 GB of RAM: Swap can be equal to the amount of RAM or slightly less (e.g., 0.5x to 1x the RAM). 20 | - More than 16 GB of RAM: Swap size is often equal to the RAM size or even smaller (e.g., 4 GB to 8 GB), depending on your needs. 21 | 22 | Now to enable the swap file: 23 | 24 | ``` 25 | # swapon /swapfile 26 | ``` 27 | 28 | And too keep it across reboots we can add the following line to `/etc/fstab` 29 | 30 | ``` 31 | /etc/fstab 32 | /swapfile none swap defaults 0 0 33 | ``` 34 | 35 | Great! Now we have swap enabled on our system. You can check that by doing 36 | 37 | ```bash 38 | free 39 | ``` 40 | 41 | And you should see something like this on your terminal 42 | 43 | ``` 44 | total used free shared buff/cache available 45 | Mem: 7034596 4476296 471520 67164 2432656 2558300 46 | Swap: 12582908 2605912 9976996 47 | ``` 48 | 49 | ## Enabling hibernation 50 | 51 | To enable hibernation, we will need to add two kernel parameters to our configuration. The first one is `resume` to tell the kernel in which device the `swapfile` is and the second one is `resume_offset` to tell the kernel in which part of the device (aka offset) the `swapfile` is located. 52 | 53 | ### Get `resume` parameter 54 | 55 | For the `resume` parameter, we will use the UUID of the disk that contains the `swapfile`. To find the UUID value first you'll need to know in which disk your `swapfile` is: 56 | 57 | ```bash 58 | df -h /swapfile 59 | ``` 60 | 61 | You should see an output like this: 62 | 63 | ``` 64 | Filesystem Size Used Avail Use% Mounted on 65 | /dev/mapper/vg-root 305G 80G 210G 28% / 66 | ``` 67 | 68 | Which indicates that the `/swapfile` is on device `/dev/mapper/vg-root`. Now to get the UUID of that device we can do: 69 | 70 | ```bash 71 | sudo blkid /dev/mapper/vg-root 72 | ``` 73 | 74 | Wich should return something like this: 75 | 76 | ``` 77 | /dev/mapper/vg-root: UUID="df9c76a1-25bc-4f83-8569-c9425a86115d" BLOCK_SIZE="4096" TYPE="ext4" 78 | ``` 79 | 80 | Great! So now we have our first kernel parameter value. Now let's get the second one. 81 | 82 | ### Get `resume_offset` parameter 83 | 84 | You can check the [Arch wiki article](https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Acquire_swap_file_offset) for this as well. 85 | 86 | To get the `resume_offset` value, we can run the following command: 87 | 88 | ```bash 89 | sudo filefrag -v /swapfile 90 | ``` 91 | 92 | Which should return something like this: 93 | 94 | ``` 95 | Filesystem type is: ef53 96 | File size of /swapfile is 4294967296 (1048576 blocks of 4096 bytes) 97 | ext: logical_offset: physical_offset: length: expected: flags: 98 | 0: 0.. 0: 38912.. 38912: 1: 99 | 1: 1.. 22527: 38913.. 61439: 22527: unwritten 100 | 2: 22528.. 53247: 899072.. 929791: 30720: 61440: unwritten 101 | ... 102 | ``` 103 | 104 | We are interested in the first `physical_offset` value which in this case is `38912`. You can also get the direct value of the offset by using `awk` 105 | 106 | ``` 107 | sudo filefrag -v swap_file | awk '$1=="0:" {print substr($4, 1, length($4)-2)}' 108 | ``` 109 | 110 | ### Adding the parameter to the kernel cmd line 111 | 112 | Now that we have the `uuid` of the device where the `/swapfile` is and the `offset` of the `/swapfile` file in this device, we can add the values to the kernel parameters. 113 | 114 | Remeber that the value we found previously where `"df9c76a1-25bc-4f83-8569-c9425a86115d"` for the UUID of the disk and `38912` for the offset of the `/swapfile`. Now well need to tell the kernel this so it can be able to find the `/swapfile` on boot. 115 | 116 | To do this in `dracut` open the `/etc/dracut.conf.d/cmdline.conf` file, where you should see something like this: 117 | 118 | ``` 119 | kernel_cmdline="rd.lunks.uuid=luks-42eb3f89-15a3-427c-9cab-8bcc8d19f94c rd.lvm.lv=vg/root root=/dev/mapper/vg-root rootfstype=ext4 rootflags=rw,relatime" 120 | ``` 121 | 122 | Now simply add the `resume` and `resume_offset` parameters. At the end of the line and **remember to close with a quote character**. Also for the `resume` parameter, you'll need to tell the kernel you are providing the UUID of the device, this is simply done by appending `=UUID` after `resume` (so your kernel parameter should look like `resume=UUID=`): 123 | 124 | Your `cmdline.conf` file should now look like this: 125 | 126 | ``` 127 | kernel_cmdline="rd.lunks.uuid=luks-42eb3f89-15a3-427c-9cab-8bcc8d19f94c rd.lvm.lv=vg/root root=/dev/mapper/vg-root rootfstype=ext4 rootflags=rw,relatime resume=UUID=df9c76a1-25bc-4f83-8569-c9425a86115d resume_offset=38912" 128 | ``` 129 | 130 | ### Rebuilding your unified kernel image 131 | 132 | Not sure if this step is needed, but I do it anyway. To rebuild the unified kernel image I simply reinstall the `linux` kernel: 133 | 134 | ```bash 135 | sudo pacman -S linux 136 | ``` 137 | 138 | ## Some tips 139 | 140 | If you have enough ram and you just want swap in your system for hibernation, you can [configure the swappiness](https://wiki.archlinux.org/title/Swap#Swappiness) on your devices such that it is never actually used. 141 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Arch Linux and Hyprland/i3 dot files 2 | 3 | ## Warning! The installation script `install` will overwrite your existing dot files! The script has only been tested on a freshly installed Arch Linux with GNOME. Use at your own risk! 4 | 5 | ## Installation: 6 | 7 | It is recommended to first configure your fastest mirrors. You can use `rate-mirrors` AUR package: 8 | 9 | ```bash 10 | git clone https://aur.archlinux.org/rate-mirrors-bin.git 11 | cd rate-mirrors-bin && makepkg -si 12 | ``` 13 | 14 | Then, on `bash` execute the following command: 15 | 16 | ```bash 17 | export TMPFILE="$(mktemp)" 18 | sudo true 19 | rate-mirrors --save=$TMPFILE arch --max-delay=43200 && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup && sudo mv $TMPFILE /etc/pacman.d/mirrorlist 20 | ``` 21 | 22 | Finally, run the dot files installation script. It will install al the needed dependencies using `paru` to install from the AUR. 23 | 24 | ``` 25 | ./install 26 | ``` 27 | 28 | ## Utilities 29 | 30 | The `genswap` script will generate a new swapfile located at `/swapfile` and will output the needed kernel parameters to add for hibernation. **Do not run if you already have swap configured.** 31 | 32 | # Screenshots Hyprland 33 | 34 | ![S1](./screenshots/P1.webp) 35 | ![S2](./screenshots/P2.webp) 36 | ![S3](./screenshots/P3.webp) 37 | ![S4](./screenshots/P4.webp) 38 | ![S5](./screenshots/P5.webp) 39 | 40 | Programs on the screenshots: 41 | 42 | - [`Alacritty`](https://github.com/alacritty/alacritty) 43 | - [`Zed`](https://zed.dev) 44 | - [`Zen`](https://zen-browser.app/) 45 | - [`Fastfetch`](https://github.com/fastfetch-cli/fastfetch) 46 | - `Tmux` - Terminal multiplexer 47 | - `Zathura` - PDF viewer 48 | -------------------------------------------------------------------------------- /alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | [[colors.indexed_colors]] 2 | color = "#FAB387" 3 | index = 16 4 | 5 | [[colors.indexed_colors]] 6 | color = "#F5E0DC" 7 | index = 17 8 | 9 | [colors.bright] 10 | black = "#585B70" 11 | blue = "#89B4FA" 12 | cyan = "#94E2D5" 13 | green = "#A6E3A1" 14 | magenta = "#F5C2E7" 15 | red = "#F38BA8" 16 | white = "#A6ADC8" 17 | yellow = "#F9E2AF" 18 | 19 | [colors.cursor] 20 | cursor = "#F5E0DC" 21 | text = "#1E1E2E" 22 | 23 | [colors.dim] 24 | black = "#45475A" 25 | blue = "#89B4FA" 26 | cyan = "#94E2D5" 27 | green = "#A6E3A1" 28 | magenta = "#F5C2E7" 29 | red = "#F38BA8" 30 | white = "#BAC2DE" 31 | yellow = "#F9E2AF" 32 | 33 | [colors.hints.end] 34 | background = "#A6ADC8" 35 | foreground = "#1E1E2E" 36 | 37 | [colors.hints.start] 38 | background = "#F9E2AF" 39 | foreground = "#1E1E2E" 40 | 41 | [colors.normal] 42 | black = "#45475A" 43 | blue = "#89B4FA" 44 | cyan = "#94E2D5" 45 | green = "#A6E3A1" 46 | magenta = "#F5C2E7" 47 | red = "#F38BA8" 48 | white = "#BAC2DE" 49 | yellow = "#F9E2AF" 50 | 51 | [colors.primary] 52 | background = "#1E1E2E" 53 | bright_foreground = "#CDD6F4" 54 | dim_foreground = "#CDD6F4" 55 | foreground = "#CDD6F4" 56 | 57 | [colors.search.focused_match] 58 | background = "#A6E3A1" 59 | foreground = "#1E1E2E" 60 | 61 | 62 | [colors.search.matches] 63 | background = "#A6ADC8" 64 | foreground = "#1E1E2E" 65 | 66 | [colors.selection] 67 | background = "#F5E0DC" 68 | text = "#1E1E2E" 69 | 70 | [colors.vi_mode_cursor] 71 | cursor = "#B4BEFE" 72 | text = "#1E1E2E" 73 | 74 | [cursor] 75 | style = { shape = "Block", blinking = "Always" } 76 | blink_interval = 450 77 | unfocused_hollow = false 78 | blink_timeout = 0 79 | 80 | [env] 81 | TERM = "xterm-256color" 82 | 83 | [font] 84 | size = 10 85 | # Medium, Bold, Light, Regular, Retina, SemiBold 86 | normal = { family = "FiraCode Nerd Font", style = "SemiBold" } 87 | offset = { x = 0, y = 0 } 88 | 89 | 90 | [window] 91 | opacity = 0.7 92 | dimensions = { columns = 106, lines = 26 } 93 | padding = { x = 0, y = 0 } 94 | -------------------------------------------------------------------------------- /applications/hibernate.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Name=Hibernate 4 | Comment=Hibernate your computer 5 | GenericName=Hibernate 6 | Keywords=Hibernate; 7 | Exec=systemctl hibernate 8 | Icon=gnome-power-manager 9 | Terminal=false 10 | Type=Application 11 | -------------------------------------------------------------------------------- /applications/shutdown.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Name=Shutdown 4 | Comment=Shutdown your computer 5 | GenericName=Shutdown 6 | Keywords=Power;Off;Shutdown; 7 | Exec=/usr/bin/shutdown 0 8 | Icon=gnome-power-manager 9 | Terminal=false 10 | Type=Application 11 | -------------------------------------------------------------------------------- /applications/suspend.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Name=Suspend 4 | Comment=Suspend your computer 5 | GenericName=Suspend 6 | Keywords=Suspend; 7 | Exec=systemctl suspend 8 | Icon=gnome-power-manager 9 | Terminal=false 10 | Type=Application 11 | -------------------------------------------------------------------------------- /bin/auto_tmux: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check if there is any tmux session running 4 | if tmux ls 2>/dev/null | grep -q .; then 5 | # Attach to the first running tmux session 6 | tmux attach-session -t $(tmux ls | head -n 1 | cut -d: -f1) 7 | else 8 | # Start a new tmux session 9 | tmux 10 | fi 11 | -------------------------------------------------------------------------------- /bin/mush: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | export TMPFILE="$(mktemp)" 3 | sudo true 4 | rate-mirrors --save=$TMPFILE arch --max-delay=43200 && sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup && sudo mv $TMPFILE /etc/pacman.d/mirrorlist 5 | -------------------------------------------------------------------------------- /bin/set_wallpaper: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | # get path form args 4 | path=$1 5 | sudo cp $path /usr/share/hyprland/wall_2K.png 6 | sudo cp $path /usr/share/hyprland/wall_anime_2K.png 7 | sudo cp $path /usr/share/hyprland/wall_anime2_2K.png 8 | -------------------------------------------------------------------------------- /btrfs.md: -------------------------------------------------------------------------------- 1 | # `btrfs` File system setup 2 | 3 | First create the partition using a tool like `fdisk` or `gdisk`. 4 | 5 | After creating the partition, format it with `btrfs`: 6 | 7 | ```bash 8 | mkfs.btrfs /dev/sdXn 9 | ``` 10 | 11 | Mount the partition: 12 | 13 | ```bash 14 | mount /dev/sdXn /mnt 15 | ``` 16 | 17 | Create subvolumes: 18 | 19 | ```bash 20 | btrfs subvolume create /mnt/@ 21 | btrfs subvolume create /mnt/@home 22 | btrfs subvolume create /mnt/@snapshots 23 | btrfs subvolume create /mnt/@vm_disks 24 | ``` 25 | 26 | Unmount the partition: 27 | 28 | ```bash 29 | umount /mnt 30 | ``` 31 | 32 | And mount the subvolumes using `zstd` compression: 33 | 34 | ```bash 35 | # Root subvolume 36 | mount -o subvol=@,compress=zstd /dev/sdXn /mnt 37 | # Home 38 | mkdir -p /mnt/home 39 | mount -o subvol=@home,compress=zstd /dev/sdXn /mnt/home 40 | # Snapshots 41 | mkdir -p /mnt/.snapshots 42 | mount -o subvol=@snapshots,compress=zstd /dev/sdXn /mnt/.snapshots 43 | # To exclude qemu images from snapshots 44 | mkdir -p /mnt/var/lib/libvirt/images 45 | mount -o subvol=@vm_disks,compress=zstd /dev/sdXn /mnt/var/lib/libvirt/images 46 | ``` 47 | 48 | Finally if using `dracut` and an encrypted LVM, add the following cmdline: 49 | 50 | ``` 51 | kernel_cmdline="rd.luks.uuid=luks- rd.lvm.lv=vg/root root=/dev/mapper/vg-root rootfstype=btrfs rootflags=subvol=@,rw,relatime,compress=zstd" 52 | 53 | ``` 54 | 55 | Where `` is the UUID of the vg/root partition. 56 | -------------------------------------------------------------------------------- /cargo/config.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | target-dir = ".cargo-target" 3 | -------------------------------------------------------------------------------- /electron-flags.conf: -------------------------------------------------------------------------------- 1 | --ozone-platform-hint=auto 2 | -------------------------------------------------------------------------------- /fastfetch/config.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 3 | "logo": { 4 | "type": "small", 5 | "color": { 6 | "2": "white", 7 | "1": "cyan" 8 | } 9 | }, 10 | "display": { 11 | "separator": " " 12 | }, 13 | "modules": [ 14 | { 15 | "type": "custom", 16 | "format": "{#35}╭──────────────────────────────────────────╮" 17 | }, 18 | { 19 | "type": "os", 20 | "key": "{#35}│ {#34} ", 21 | "keyColor": "blue" 22 | }, 23 | { 24 | "type": "kernel", 25 | "key": "{#35}│ {#34} ", 26 | "keyColor": "blue" 27 | }, 28 | { 29 | "type": "uptime", 30 | "key": "{#35}│ {#34} ", 31 | "keyColor": "blue" 32 | }, 33 | { 34 | "type": "shell", 35 | "key": "{#35}│ {#34} ", 36 | "keyColor": "blue" 37 | }, 38 | { 39 | "type": "wm", 40 | "key": "{#35}│ {#34} ", 41 | "keyColor": "blue" 42 | }, 43 | { 44 | "type": "memory", 45 | "key": "{#35}│ {#34} ", 46 | "keyColor": "blue" 47 | }, 48 | { 49 | "type": "cpu", 50 | "key": "{#35}│ {#34}󰍛 ", 51 | "keyColor": "blue", 52 | "format": "{freq-max} - {cores-logical} cores {#34}" 53 | }, 54 | { 55 | "type": "custom", 56 | "format": "{#35}╰───────────────────── {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#35}────╯" 57 | } 58 | ] 59 | } 60 | -------------------------------------------------------------------------------- /genswap: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | size=$1 5 | 6 | # If size == --help 7 | if [ "$size" == "--help" ]; then 8 | echo "Usage: genswap " 9 | echo "size: the size of the swap file in GB" 10 | exit 0 11 | fi 12 | 13 | isuint_Regx() { [[ $1 =~ ^[0-9]+$ ]] ;} 14 | 15 | if isuint_Regx $size; then 16 | echo "The argument is an integer." 17 | else 18 | echo "Usage: genswap " 19 | echo "size: the size of the swap file in GB" 20 | exit 1 21 | fi 22 | 23 | sudo mkswap -U clear --size "${size}G" --file /swapfile 24 | sudo swapon /swapfile 25 | 26 | echo "/swapfile none swap defaults 0 0" | sudo tee -a /etc/fstab 27 | 28 | offset=$(sudo filefrag -v /swapfile | awk '$1=="0:" {print substr($4, 1, length($4)-2)}') 29 | dev_path=$(df -h /swapfile | awk 'NR>1 {print $1}') 30 | uuid=$(sudo blkid ${dev_path} | awk -F'"' '{print $2}') 31 | 32 | echo "Done, now add this to /etc/dracut.conf.d/cmdline.conf" 33 | echo "resume=UUID=${uuid} resume_offset=${offset}" 34 | 35 | -------------------------------------------------------------------------------- /hypr/activate_edp: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | hyprctl keyword monitor eDP-1, 3072x1920, 0x0,2, vrr, 1 3 | -------------------------------------------------------------------------------- /hypr/close_lid: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 1 3 | # Get the output and count the number of lines matching the regex 4 | line_count=$(hyprctl monitors | grep -P 'Monitor\s(?!eDP-1).+?\s\(ID\s\d+\):' | wc -l) 5 | 6 | # Check if the line count is more than 1 7 | if [ "$line_count" -gt 0 ]; then 8 | # disable the internal monitor on lid close 9 | hyprctl keyword monitor eDP-1, disable 10 | fi 11 | -------------------------------------------------------------------------------- /hypr/full-screenshot: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | grim - | wl-copy && wl-paste > ~/Pictures/Screenshots/Screenshot-$(date +%F_%T).png | notify-send -i image -a wl-copy -u normal "Screenshot of whole screen taken" -t 1000 # screenshot of the whole screen 3 | -------------------------------------------------------------------------------- /hypr/hypridle.conf: -------------------------------------------------------------------------------- 1 | general { 2 | lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. 3 | before_sleep_cmd = loginctl lock-session # lock before suspend. 4 | after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. 5 | } 6 | 7 | listener { 8 | timeout = 1800 # 30min 9 | on-timeout = systemctl suspend # suspend pc 10 | } 11 | -------------------------------------------------------------------------------- /hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | # Monitor layout, machine specific 2 | # monitor=HDMI-A-1, 1920x1080, 1920x0, 1 3 | monitor=eDP-1, 3072x1920@120, 0x0,2, vrr, 1 4 | monitor = , preferred, auto, 1 5 | monitor=HDMI-A-1,1920x1080@100,auto,1 6 | 7 | bindl= , switch:on:Lid Switch, exec, $HOME/.config/hypr/close_lid 8 | bindl= , switch:off:Lid Switch, exec, $HOME/.config/hypr/open_lid 9 | 10 | # unscale XWayland 11 | xwayland { 12 | force_zero_scaling = true 13 | } 14 | 15 | workspace = special:pocket, monitor:HDMI-A-1, default:true 16 | workspace = special:aux, monitor:HDMI-A-1, default:true 17 | workspace = 1, monitor:eDP-1, default:true, on-created-empty:alacritty -e ~/.local/bin/auto_tmux 18 | workspace = 10, monitor:HDMI-A-1, default:true, on-created-empty:zen-browser 19 | # workspace = 9, monitor:HDMI-A-1, default:false, on-created-empty:flatpak run md.obsidian.Obsidian 20 | 21 | 22 | # Screensharing rules 23 | windowrule = opacity 0.0 override,class:^(xwaylandvideobridge)$ 24 | windowrule = noanim,class:^(xwaylandvideobridge)$ 25 | windowrule = noinitialfocus,class:^(xwaylandvideobridge)$ 26 | windowrule = maxsize 1 1,class:^(xwaylandvideobridge)$ 27 | windowrule = noblur,class:^(xwaylandvideobridge)$ 28 | windowrule = noanim,class:^(rofi)$ 29 | layerrule = unset,rofi 30 | layerrule = noanim,rofi 31 | windowrule = center,floating:1 32 | 33 | 34 | # Autostart 35 | # exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP 36 | exec-once=swaync 37 | exec-once=waybar 38 | exec-once=blueman-applet 39 | exec-once=~/.config/hypr/screen-share-startup 40 | exec-once=swayosd-server 41 | exec-once=nm-applet 42 | exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 43 | exec-once = hyprpaper 44 | exec-once=hyprctl setcursor Vimix-cursors 24 45 | exec-once=wl-gammarelay-rs 46 | # exec-once= [workspace special:pocket silent; float] protonvpn-app 47 | exec-once=hypridle 48 | # exec-once=protonvpn-app 49 | 50 | # Clipboard manager 51 | exec-once = clipse -listen 52 | windowrule = float,class:(clipse) 53 | windowrule = size 622 652,class:(clipse) 54 | bind = SUPER, V, exec, alacritty --class clipse -e clipse 55 | 56 | ecosystem { 57 | no_update_news=true 58 | } 59 | 60 | misc { 61 | disable_hyprland_logo=true 62 | focus_on_activate=false 63 | new_window_takes_over_fullscreen=true 64 | splash_font_family = "Inter V" 65 | allow_session_lock_restore = true 66 | enable_anr_dialog = false 67 | } 68 | # Some default env vars. 69 | env = XCURSOR_THEME,Vimix-cursors 70 | env = XCURSOR_SIZE,24 71 | # env = GSK_RENDERER,ngl 72 | 73 | env = HYPRCURSOR_THEME,Vimix Cursors 74 | env = HYPRCURSOR_SIZE,24 75 | exec-once=hyprctl setcursor "Vimix Cursors" 24 76 | 77 | # Input devices 78 | input { 79 | kb_layout = us 80 | follow_mouse = 1 81 | touchpad { 82 | natural_scroll = yes, 83 | tap-to-click = yes, 84 | } 85 | sensitivity = 0 86 | repeat_rate = 50 87 | repeat_delay = 500 88 | } 89 | general { 90 | no_border_on_floating = false 91 | gaps_in = 2.5 92 | gaps_out = 10 93 | # gaps_out = 2.5,2.5,2.5,2.5 94 | border_size = 3 95 | 96 | # Catppuccin Mocha - Use "Lavender" and "Blue" for gradient 97 | # col.active_border = rgba(b4befeFF) rgba(89b4faFF) 100deg 98 | col.active_border = rgba(b4befeFF) rgba(74c7ecFF) rgba(89b4faFF) 120deg 99 | # Use "Surface0" for inactive border, with transparency 100 | col.inactive_border = 0x66313244 101 | 102 | layout = dwindle 103 | } 104 | 105 | group { 106 | col.border_active=rgba(CAD3F5FF) rgba(4ABAAFFF) 50deg 107 | col.border_inactive=rgba(343A40FF) 108 | # col.group_border_active=rgba(CAD3F5FF) 109 | groupbar { 110 | gradients = false 111 | render_titles = false 112 | enabled = false 113 | col.inactive=rgba(343A40FF) 114 | col.active=rgba(CAD3F5FF) rgba(4ABAAFFF) 50deg 115 | } 116 | } 117 | 118 | decoration { 119 | rounding=10 120 | # multisample_edges=true 121 | 122 | active_opacity=1.0 123 | inactive_opacity=1.0 124 | fullscreen_opacity=1.0 125 | 126 | blur { 127 | enabled=true 128 | size= 3 129 | passes= 4 # minimum 1, more passes = more resource intensive. 130 | ignore_opacity=true 131 | } 132 | 133 | # drop_shadow=true 134 | # shadow_range=10 135 | shadow { 136 | enabled = true 137 | range = 10 138 | color = rgba(9399B280) 139 | color_inactive = 0x50000000 140 | } 141 | } 142 | 143 | animations { 144 | bezier=parnim,0.56,0.34,0.03,0.99 145 | bezier=bounce,0.175, 0.885, 0.32, 1.15 146 | enabled=1 147 | animation=border,1,7,default 148 | animation=workspaces,1,2,default 149 | animation=specialWorkspace,1,5,default, slidevert 150 | animation=windowsIn,1,7,parnim,popin 151 | animation=windowsOut,1,7,parnim,popin 152 | animation=windowsMove,1,7,bounce,slide 153 | } 154 | 155 | dwindle { 156 | pseudotile = yes 157 | preserve_split = yes 158 | } 159 | 160 | master { 161 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 162 | # new_is_master = true 163 | } 164 | 165 | gestures { 166 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 167 | workspace_swipe = on 168 | } 169 | 170 | $mainMod = SUPER 171 | 172 | # ######################## NAVIGATION ######################### 173 | bind = $mainMod SHIFT, Q, killactive, 174 | bind = $mainMod SHIFT, E, exit, 175 | bind = $mainMod SHIFT, space, togglefloating, 176 | bind = $mainMod, P, pseudo, # dwindle 177 | bind = $mainMod, W, togglesplit, # dwindle 178 | 179 | # Move focus with mainMod + arrow keys 180 | bind = $mainMod, H, movefocus, l 181 | bind = $mainMod, L, movefocus, r 182 | bind = $mainMod, K, movefocus, u 183 | bind = $mainMod, J, movefocus, d 184 | 185 | 186 | # Plugins 187 | # exec-once=hyprctl plugin load $HOME/github/Hyprspace/Hyprspace.so 188 | # bind = $mainMod, space, overview:toggle 189 | 190 | # Move windows 191 | bind = $mainMod SHIFT, H, movewindow, l 192 | bind = $mainMod SHIFT, L, movewindow, r 193 | bind = $mainMod SHIFT, K, movewindow, u 194 | bind = $mainMod SHIFT, J, movewindow, d 195 | 196 | bind =SUPER,F,fullscreen 197 | bind =$mainMod SHIFT, F, fullscreenstate, 2, 0 198 | 199 | bind =$mainMod, x,togglegroup 200 | bind = $mainMod, h, changegroupactive, b 201 | bind = $mainMod, l, changegroupactive, f 202 | 203 | # Switch workspaces with mainMod + [0-9] 204 | bind = $mainMod, 1, workspace, 1 205 | bind = $mainMod, 2, workspace, 2 206 | bind = $mainMod, 3, workspace, 3 207 | bind = $mainMod, 4, workspace, 4 208 | bind = $mainMod, 5, workspace, 5 209 | bind = $mainMod, 6, workspace, 6 210 | bind = $mainMod, 7, workspace, 7 211 | bind = $mainMod, 8, workspace, 8 212 | bind = $mainMod, 9, workspace, 9 213 | bind = $mainMod, 0, workspace, 10 214 | 215 | # Move to left-right workspaces 216 | binde = $mainMod SHIFT, Tab, workspace, m-1 217 | binde = $mainMod, Tab, workspace, m+1 218 | 219 | # Special workspaces 220 | bind = $mainMod SHIFT, C, movetoworkspace, special:pocket 221 | bind = $mainMod, C, togglespecialworkspace, pocket 222 | 223 | bind = $mainMod SHIFT, code:21, movetoworkspace, special:aux 224 | bind = $mainMod, code:21, togglespecialworkspace, aux 225 | 226 | # Move active window to a workspace with mainMod + SHIFT + [0-9] 227 | bind = $mainMod SHIFT, 1, movetoworkspace, 1 228 | bind = $mainMod SHIFT, 2, movetoworkspace, 2 229 | bind = $mainMod SHIFT, 3, movetoworkspace, 3 230 | bind = $mainMod SHIFT, 4, movetoworkspace, 4 231 | bind = $mainMod SHIFT, 5, movetoworkspace, 5 232 | bind = $mainMod SHIFT, 6, movetoworkspace, 6 233 | bind = $mainMod SHIFT, 7, movetoworkspace, 7 234 | bind = $mainMod SHIFT, 8, movetoworkspace, 8 235 | bind = $mainMod SHIFT, 9, movetoworkspace, 9 236 | bind = $mainMod SHIFT, 0, movetoworkspace, 10 237 | 238 | # Scroll through existing workspaces with mainMod + scroll 239 | bind = $mainMod, mouse_down, workspace, e+1 240 | bind = $mainMod, mouse_up, workspace, e-1 241 | 242 | # Move/resize windows with mainMod + LMB/RMB and dragging 243 | bindm = $mainMod, mouse:272, movewindow 244 | bindm = $mainMod, mouse:273, resizewindow 245 | 246 | # RESIZE 247 | bind =$mainMod SHIFT,R,submap,resize # will switch to a submap called resize 248 | 249 | submap=resize # will start a submap called "resize" 250 | 251 | binde=,L,resizeactive,10 0 252 | binde=,H,resizeactive,-10 0 253 | binde=,K,resizeactive,0 -10 254 | binde=,J,resizeactive,0 10 255 | 256 | bind =,escape,submap,reset # use reset to go back to the global submap 257 | 258 | submap=reset # will reset the submap 259 | 260 | # ############################################################# 261 | # 262 | # Background 263 | 264 | # Launchers 265 | bind = $mainMod, return, exec, alacritty 266 | bind = $mainMod SHIFT, return, exec, alacritty -e ~/.local/bin/auto_tmux 267 | bind = $mainMod, E, exec, nautilus 268 | bind = $mainMod, D, exec, rofi -show drun 269 | bind = $mainMod, I, exec, zen-browser 270 | 271 | # Night light 272 | bind = $mainMod SHIFT, N, exec, busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 3500 273 | binde = $mainMod, up, exec, busctl --user call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n 100 274 | binde = $mainMod, down, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -100 275 | 276 | bind = $mainMod SHIFT, M, exec,busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 6500 277 | binde = $mainMod SHIFT, I, exec, busctl --user call rs.wl-gammarelay / rs.wl.gammarelay ToggleInverted 278 | # bind = $mainMod SHIFT, I, exec, hyprctl reload 279 | bind = $mainMod SHIFT, O, exec, $HOME/.config/hypr/switch_monitor 280 | bind = $mainMod SHIFT, P, exec, hyprlock 281 | bind = $mainMod SHIFT, W, exec, hyprlock 282 | bind = $mainMod, N, exec, swaync-client --toggle-panel 283 | 284 | # Backlight 285 | binde=,XF86MonBrightnessUp,exec,swayosd-client --brightness=raise 286 | binde=,XF86MonBrightnessDown,exec,swayosd-client --brightness=lower 287 | bind = $mainMod,XF86MonBrightnessUp,exec,light -S 100 288 | bind = $mainMod,XF86MonBrightnessDown,exec,light -S 0 289 | 290 | # Volume 291 | binde= ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise 292 | binde= ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower 293 | bind = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle 294 | bind = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle 295 | 296 | bind = ,XF86AudioPlay, exec, playerctl play-pause 297 | bind = ,XF86AudioPrev, exec, playerctl previous 298 | bind = ,XF86AudioNext, exec, playerctl next 299 | 300 | # Capslock 301 | # For some reason without delay the caps allways shows on 302 | bind =,Caps_Lock,exec,sleep 0.1 && swayosd-client --caps-lock 303 | 304 | # Screenshot 305 | bind =$mainMod SHIFT, S, exec, ~/.config/hypr/screenshot 306 | bind =$mainMod SHIFT, D, exec, ~/.config/hypr/full-screenshot 307 | bind = $mainMod SHIFT, G, exec, ~/.local/bin/screenshot-gpt 308 | 309 | # Hide waybar 310 | 311 | bind = $mainMod SHIFT, B, exec, killall -SIGUSR1 waybar 312 | bind = $mainMod, S, exec, hyprctl dispatch sendshortcut "CTRL,V," && hyprctl dispatch sendshortcut ",RETURN," 313 | -------------------------------------------------------------------------------- /hypr/hyprlock.conf: -------------------------------------------------------------------------------- 1 | source = $HOME/.cache/wal/colors-hyprland.conf 2 | monitor=eDP-1, 3072x1920, 0x0,2, vrr, 1 3 | 4 | auth { 5 | fingerprint { 6 | enabled = true 7 | } 8 | } 9 | 10 | background { 11 | monitor = 12 | path = $HOME/.config/hypr/wallpapers/Clearnight.jpg 13 | # color = $color1 14 | 15 | # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations 16 | blur_size = 4 17 | blur_passes = 3 # 0 disables blurring 18 | noise = 0.0117 19 | contrast = 1.3000 # Vibrant!!! 20 | brightness = 0.8000 21 | vibrancy = 0.2100 22 | vibrancy_darkness = 0.0 23 | } 24 | 25 | input-field { 26 | monitor = 27 | size = 400, 50 28 | outline_thickness = 3 29 | dots_size = 0.26 # Scale of input-field height, 0.2 - 0.8 30 | dots_spacing = 0.64 # Scale of dots' absolute size, 0.0 - 1.0 31 | dots_center = true 32 | outer_color = $color0 33 | inner_color = $color0 34 | font_color = $color6 35 | fade_on_empty = true 36 | placeholder_text = Password... # Text rendered in the input box when it's empty. 37 | hide_input = false 38 | 39 | position = 0, 90 40 | halign = center 41 | valign = bottom 42 | } 43 | 44 | # Current time 45 | label { 46 | monitor = 47 | text = cmd[update:1000] echo " $(date +"%H:%M:%S") " 48 | color = $color6 49 | font_size = 64 50 | font_family = JetBrains Mono Nerd Font 10 51 | shadow_passes = 3 52 | shadow_size = 4 53 | 54 | position = 0, 30 55 | halign = center 56 | valign = center 57 | } 58 | 59 | # Date 60 | label { 61 | monitor = 62 | text = cmd[update:18000000] echo " "$(date +'%A, %-d %B %Y')" " 63 | color = $color7 64 | font_size = 24 65 | font_family = JetBrains Mono Nerd Font 10 66 | 67 | position = 0, -30 68 | halign = center 69 | valign = center 70 | } 71 | 72 | label { 73 | monitor = 74 | text = Hey $USER 75 | color = $color7 76 | font_size = 18 77 | font_family = Inter Display Medium 78 | 79 | position = 0, 30 80 | halign = center 81 | valign = bottom 82 | } 83 | 84 | -------------------------------------------------------------------------------- /hypr/hyprpaper.conf: -------------------------------------------------------------------------------- 1 | preload = ~/.config/hypr/wallpapers/Cloudsnight.jpg 2 | 3 | #enable splash text rendering over the wallpaper 4 | splash = true 5 | 6 | #fully disable ipc 7 | # ipc = off 8 | wallpaper = ,~/.config/hypr/wallpapers/Cloudsnight.jpg 9 | 10 | ipc = off 11 | -------------------------------------------------------------------------------- /hypr/open_lid: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 1 3 | hyprctl keyword monitor eDP-1, 3072x1920, 0x0,2, vrr, 1 4 | # Get the output and count the number of lines matching the regex 5 | line_count=$(hyprctl monitors | grep -P 'Monitor\s(?!eDP-1).+?\s\(ID\s\d+\):' | wc -l) 6 | 7 | # Check if the line count is more than 1 8 | if [ "$line_count" -gt 0 ]; then 9 | # disable the internal monitor on lid close 10 | hyprctl keyword monitor HDMI-A-1,1920x1080@100,auto,1 11 | fi 12 | -------------------------------------------------------------------------------- /hypr/screen-share-startup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 1 3 | killall -e xdg-desktop-portal-hyprland 4 | killall -e xdg-desktop-portal-wlr 5 | killall xdg-desktop-portal 6 | /usr/lib/xdg-desktop-portal-hyprland & 7 | sleep 2 8 | /usr/lib/xdg-desktop-portal & 9 | -------------------------------------------------------------------------------- /hypr/screenshot: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | grim -g "$(slurp)" - | wl-copy && wl-paste > ~/Pictures/Screenshots/Screenshot-$(date +%F_%T).png | notify-send -i image -a wl-copy -u normal "Screenshot of the region taken" -t 1000 # screenshot of a region 3 | -------------------------------------------------------------------------------- /hypr/sunamu_start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check if the process "sunamu" is running 4 | if pgrep -x "sunamu" > /dev/null 5 | then 6 | killall sunamu 7 | else 8 | sunamu 9 | fi 10 | -------------------------------------------------------------------------------- /hypr/switch_monitor: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if hyprctl monitors | grep -q 'eDP-1'; then 4 | hyprctl keyword monitor eDP-1, disable 5 | hyprctl keyword monitor HDMI-A-1, 1920x1080@100, 0x0, 1 6 | else 7 | hyprctl keyword monitor eDP-1, 3072x1920, 0x0,2, vrr, 1 8 | hyprctl keyword monitor HDMI-A-1, 1920x1080@100, 1920x0, 1 9 | fi 10 | -------------------------------------------------------------------------------- /hypr/wallpapers/Clearnight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/Clearnight.jpg -------------------------------------------------------------------------------- /hypr/wallpapers/Cloudsnight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/Cloudsnight.jpg -------------------------------------------------------------------------------- /hypr/wallpapers/Rainnight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/Rainnight.jpg -------------------------------------------------------------------------------- /hypr/wallpapers/background.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/background.jpeg -------------------------------------------------------------------------------- /hypr/wallpapers/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/lock.png -------------------------------------------------------------------------------- /hypr/wallpapers/night_city.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/night_city.png -------------------------------------------------------------------------------- /hypr/wallpapers/wall_city.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wall_city.jpeg -------------------------------------------------------------------------------- /hypr/wallpapers/wallpaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wallpaper.png -------------------------------------------------------------------------------- /hypr/wallpapers/wallpaper2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wallpaper2.png -------------------------------------------------------------------------------- /hypr/wallpapers/wallpaper3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wallpaper3.jpg -------------------------------------------------------------------------------- /hypr/wallpapers/wallpaper4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wallpaper4.png -------------------------------------------------------------------------------- /hypr/wallpapers/wallpaper_street.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wallpaper_street.png -------------------------------------------------------------------------------- /hypr/wallpapers/wallpaper_street_blur.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wallpaper_street_blur.png -------------------------------------------------------------------------------- /hypr/wallpapers/wallpaper_triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/hypr/wallpapers/wallpaper_triangle.png -------------------------------------------------------------------------------- /i3/config: -------------------------------------------------------------------------------- 1 | set $mod Mod4 2 | exec --no-startup-id dex --autostart --environment i3 3 | exec --no-startup-id picom 4 | 5 | exec_always --no-startup-id xset s off -dpms 6 | 7 | exec_always --no-startup-id autotiling 8 | 9 | # Set font 10 | font pango:JetBrainsMonoNL Nerd Font 0 11 | 12 | # Set wallpaper 13 | exec --no-startup-id feh --bg-scale ~/.config/hypr/wallpapers/wallpaper_street.png 14 | exec --no-startup-id ~/.config/i3/setoutput 15 | 16 | 17 | # Floating # 18 | floating_modifier $mod 19 | bindsym $mod+Shift+space floating toggle 20 | default_floating_border pixel 0 21 | for_window [class="zoom"] floating enable 22 | 23 | # Media control 24 | bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% 25 | bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% 26 | bindsym XF86AudioMute exec --no-startup-id amixer -D pulse sset Master toggle-mute 27 | bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle 28 | 29 | # Navigation # 30 | set $up k 31 | set $down j 32 | set $left h 33 | set $right l 34 | 35 | bindsym $mod+Shift+q kill 36 | 37 | bindsym $mod+$left focus left 38 | bindsym $mod+$down focus down 39 | bindsym $mod+$up focus up 40 | bindsym $mod+$right focus right 41 | 42 | bindsym $mod+Shift+$left move left 43 | bindsym $mod+Shift+$down move down 44 | bindsym $mod+Shift+$up move up 45 | bindsym $mod+Shift+$right move right 46 | 47 | 48 | bindsym $mod+g split h 49 | bindsym $mod+v split v 50 | 51 | bindsym $mod+f fullscreen toggle 52 | 53 | bindsym $mod+s layout stacking 54 | bindsym $mod+w layout tabbed 55 | bindsym $mod+e layout toggle split 56 | 57 | # Workspaces # 58 | set $ws1 "1" 59 | set $ws2 "2" 60 | set $ws3 "3" 61 | set $ws4 "4" 62 | set $ws5 "5" 63 | set $ws6 "6" 64 | set $ws7 "7" 65 | set $ws8 "8" 66 | set $ws9 "9" 67 | set $ws10 "10" 68 | 69 | bindsym $mod+1 workspace number $ws1 70 | bindsym $mod+2 workspace number $ws2 71 | bindsym $mod+3 workspace number $ws3 72 | bindsym $mod+4 workspace number $ws4 73 | bindsym $mod+5 workspace number $ws5 74 | bindsym $mod+6 workspace number $ws6 75 | bindsym $mod+7 workspace number $ws7 76 | bindsym $mod+8 workspace number $ws8 77 | bindsym $mod+9 workspace number $ws9 78 | bindsym $mod+0 workspace number $ws10 79 | bindsym $mod+Tab workspace next 80 | 81 | 82 | bindsym $mod+Shift+1 move container to workspace number $ws1 83 | bindsym $mod+Shift+2 move container to workspace number $ws2 84 | bindsym $mod+Shift+3 move container to workspace number $ws3 85 | bindsym $mod+Shift+4 move container to workspace number $ws4 86 | bindsym $mod+Shift+5 move container to workspace number $ws5 87 | bindsym $mod+Shift+6 move container to workspace number $ws6 88 | bindsym $mod+Shift+7 move container to workspace number $ws7 89 | bindsym $mod+Shift+8 move container to workspace number $ws8 90 | bindsym $mod+Shift+9 move container to workspace number $ws9 91 | bindsym $mod+Shift+0 move container to workspace number $ws10 92 | 93 | # Refresh/Restart/Logout 94 | bindsym $mod+Shift+c reload 95 | bindsym $mod+Shift+e exec --no-startup-id i3-msg exit 96 | bindsym $mod+Shift+a exec --no-startup-id "i3-nagbar -t warning -m 'You pressed the hibernation shortcut. Do you really want to hibernate your PC?' -B 'Yes, hibernate' 'systemctl hibernate'" 97 | 98 | # Resize 99 | mode "resize" { 100 | bindsym h resize shrink width 5 px or 5 ppt 101 | bindsym j resize grow height 5 px or 5 ppt 102 | bindsym k resize shrink height 5 px or 5 ppt 103 | bindsym l resize grow width 5 px or 5 ppt 104 | 105 | bindsym Left resize shrink width 5 px or 5 ppt 106 | bindsym Down resize grow height 5 px or 5 ppt 107 | bindsym Up resize shrink height 5 px or 5 ppt 108 | bindsym Right resize grow width 5 px or 5 ppt 109 | 110 | bindsym Return mode "default" 111 | bindsym Escape mode "default" 112 | bindsym $mod+r mode "default" 113 | } 114 | bindsym $mod+r mode "resize" 115 | 116 | # Border/Gaps/Titlebars 117 | ##################################### BORDERS/GAPS/TITLEBARS ##################################### 118 | client.focused #6272A4 #6272A4 #6272A4 #6272A4 #6272A4 119 | client.focused_inactive #44475A #44475A #44475A #44475A #44475A 120 | client.unfocused #282A36 #282A36 #282A36 #282A36 #282A36 121 | client.urgent #44475A #FF5555 #FF5555 #FF5555 #FF5555 122 | client.placeholder #282A36 #282A36 #282A36 #282A36 #282A36 123 | 124 | gaps inner 5 125 | gaps outer 5 126 | default_border pixel 3 127 | smart_borders on 128 | 129 | # Autostart polkit 130 | exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 131 | 132 | # Execute alacritty 133 | bindsym $mod+Return exec --no-startup-id alacritty 134 | bindsym $mod+d exec --no-startup-id rofi -show drun 135 | 136 | # Execute polybar 137 | exec --no-startup-id ~/.config/polybar/scripts/polybarstart.sh 138 | bindsym $mod+Shift+b exec --no-startup-id polybar-msg cmd toggle 139 | 140 | # Night light 141 | bindsym $mod+Shift+n exec --no-startup-id redshift -P -O 4500 142 | bindsym $mod+Shift+m exec --no-startup-id redshift -x && killall redshift 143 | bindsym $mod+Shift+s exec --no-startup-id flameshot gui 144 | bindsym $mod+Shift+w exec --no-startup-id i3lock -i ~/.config/hypr/wallpapers/lock.png 145 | bindsym $mod+Shift+Return exec --no-startup-id alacritty -e ~/.local/bin/auto_tmux 146 | bindsym $mod+Shift+o exec --no-startup-id ~/.local/bin/toggle_monitor 147 | -------------------------------------------------------------------------------- /i3/setoutput: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if xrandr --query | grep -q "HDMI-1 connected"; then 4 | echo "HDMI-1 connected" 5 | xrandr --output eDP-1 --off --output HDMI-1 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-1 --off --output DP-2 --off 6 | fi 7 | 8 | -------------------------------------------------------------------------------- /icomoon.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlvaroParker/config/d5671b59ea750d7a36c7d67ef996ddd0eaaaf5bd/icomoon.zip -------------------------------------------------------------------------------- /install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | current_dir=$(pwd) 3 | create_symlinks() { 4 | local source_directory="$1" 5 | local target_directory="$2" 6 | local full_source_directory="${current_dir}/$source_directory" 7 | 8 | # Ensure the target directory exists 9 | mkdir -p "$target_directory" 10 | 11 | # Loop through each file in the source directory 12 | for file in "$full_source_directory"/*; do 13 | if [ -f "$file" ]; then 14 | ln -s "$file" "$target_directory" 15 | fi 16 | done 17 | } 18 | 19 | packages=("wget" "ranger" "tmux" "curl" "unzip" "rustup" "base-devel" "hyprland" "xdg-desktop-portal-hyprland" "alacritty" "nautilus" "flatpak" "gammastep" "grim" "wl-clipboard" "slurp" "swaync" "waybar" "blueman" "btop" "zsh" "neovim" "zathura" "lsd" "fastfetch" "bat" "picom" "i3" "polybar" "ttf-jetbrains-mono-nerd" "ttf-firacode-nerd" "qemu-system-x86" "qemu-system-x86-firmware" "libvirt" "bridge-utils" "virt-manager" "qemu-hw-display-virtio-gpu-gl" "qemu-hw-display-virtio-gpu" "qemu-hw-display-virtio-gpu-pci" "qemu-hw-display-virtio-gpu-pci-gl" "dnsmasq" "qemu-img" "docker" "docker-compose" "hyprpaper" "hyprlock" "ripgrep" "qt5-wayland" "qt6-wayland" "lib32-glibc" "lib32-gcc-libs" "easyeffects" "network-manager-applet" "feh" "xorg-server" "lxappearance" "zathura-pdf-poppler" "gnome-tweaks" "gnome-themes-extra" "plymouth" "obsidian" "polkit-kde-agent" "qemu-full" "gdb" "vlc" "jq" "man-pages" "hypridle" "vulkan-radeon" "exa" "rsync" "firefox") 20 | # Filter out already installed packages 21 | to_install=() 22 | for pkg in "${packages[@]}"; do 23 | if ! pacman -Qq $pkg &>/dev/null; then 24 | to_install+=("$pkg") 25 | fi 26 | done 27 | if (( ${#to_install[@]} > 0 )); then 28 | sudo pacman -S --noconfirm "${to_install[@]}" 29 | else 30 | echo "Dependencies already installed." 31 | fi 32 | 33 | mkdir -p "$HOME/.cargo" 34 | rm -rf "$HOME/.cargo/config.toml" 35 | ln -s "${current_dir}/cargo/config.toml" "$HOME/.cargo/config.toml" 36 | 37 | # Install paru 38 | if ! pacman -Qq paru &>/dev/null; then 39 | mkdir -p ~/aur 40 | cd ~/aur 41 | git clone https://aur.archlinux.org/paru-bin.git 42 | cd paru-bin 43 | makepkg -si --noconfirm 44 | else 45 | echo "Paru already installed." 46 | fi 47 | 48 | # Remove xdg-desktop-portal-gnome 49 | # if pacman -Qq xdg-desktop-portal-gnome &>/dev/null; then 50 | # sudo pacman -Rs --noconfirm xdg-desktop-portal-gnome 51 | # fi 52 | 53 | # Install AUR packages 54 | aur_packages=("light" "hyprpicker" "rate-mirrors-bin" "swayosd-git" "zen-browser-bin" "visual-studio-code-bin" "rofi-lbonn-wayland-git" "wl-gammarelay-rs" "proton-vpn-gtk-app" "clipse-bin") 55 | aur_to_install=() 56 | 57 | for pkg in "${aur_packages[@]}"; do 58 | if ! pacman -Qq $pkg &>/dev/null; then 59 | aur_to_install+=("$pkg") 60 | fi 61 | done 62 | if (( ${#aur_to_install[@]} > 0 )); then 63 | paru -S --noconfirm --skipreview "${aur_to_install[@]}" 64 | else 65 | echo "AUR dependencies already installed." 66 | fi 67 | 68 | cd $current_dir 69 | 70 | # Enable tap to click on i3 71 | sudo mkdir -p /etc/X11/xorg.conf.d && sudo tee <<'EOF' /etc/X11/xorg.conf.d/90-touchpad.conf 1> /dev/null 72 | Section "InputClass" 73 | Identifier "touchpad" 74 | MatchIsTouchpad "on" 75 | Driver "libinput" 76 | Option "Tapping" "on" 77 | EndSection 78 | 79 | EOF 80 | 81 | # Install AstroNvim 82 | rm -rf ~/.config/nvim ~/.local/share/nvim ~/.local/state/nvim ~/.cache/nvim 83 | ln -s "${current_dir}/nvim" ~/.config/nvim 84 | 85 | 86 | # Install tmux plugin manager 87 | rm -rf ~/.tmux.conf 88 | ln "${current_dir}/tmux.conf" ~/.tmux.conf 89 | git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm 90 | 91 | # Install alacritty config 92 | rm -rf ~/.config/alacritty 93 | ln -s "${current_dir}/alacritty" ~/.config/alacritty 94 | 95 | # Install dunst config 96 | rm -rf ~/.config/swaync 97 | ln -s "${current_dir}/swaync" ~/.config/swaync 98 | 99 | # Install hyprland config 100 | rm -rf ~/.config/hypr 101 | ln -s "${current_dir}/hypr" ~/.config/hypr 102 | 103 | # Install neofetch config 104 | rm -rf ~/.config/fastfetch 105 | ln -s "${current_dir}/fastfetch" ~/.config/fastfetch 106 | 107 | # Install rofi config 108 | rm -rf ~/.config/rofi 109 | ln -s "${current_dir}/rofi" ~/.config/rofi 110 | 111 | # Install waybar config 112 | rm -rf ~/.config/waybar 113 | ln -s "${current_dir}/waybar" ~/.config/waybar 114 | 115 | # Install zathura config 116 | rm -rf ~/.config/zathura 117 | ln -s "${current_dir}/zathura" ~/.config/zathura 118 | 119 | # Install polybar config 120 | rm -rf ~/.config/polybar 121 | ln -s "${current_dir}/polybar" ~/.config/polybar 122 | 123 | # Install picom config 124 | rm -rf ~/.config/picom 125 | ln -s "${current_dir}/picom" ~/.config/picom 126 | 127 | # Install i3 config 128 | rm -rf ~/.config/i3 129 | ln -s "${current_dir}/i3" ~/.config/i3 130 | 131 | # Install fonts 132 | # Needed for waybar 133 | unzip ./icomoon.zip 134 | mkdir -p ~/.local/share/fonts 135 | cp -r ./icomoon/fonts ~/.local/share/fonts/icomoon 136 | 137 | # https://github.com/rsms/inter/releases/download/v4.0/Inter-4.0.zip 138 | wget https://github.com/rsms/inter/releases/download/v4.0/Inter-4.0.zip 139 | unzip -d Inter Inter-4.0.zip 140 | mv "./Inter/extras/otf" ~/.local/share/fonts/Inter 141 | rm -rf Inter Inter-4.0.zip 142 | 143 | # Reload cache 144 | fc-cache 145 | 146 | # Install code config 147 | mkdir -p ~/.config/Code/User 148 | rm -rf ~/.config/Code/User/settings.json ~/.config/Code/User/keybinds.json 149 | ln -s "${current_dir}/Code/User/keybinds.json" ~/.config/Code/User/keybinds.json 150 | ln -s "${current_dir}/Code/User/settings.json" ~/.config/Code/User/settings.json 151 | 152 | # Install zed config 153 | mkdir -p ~/.config/zed 154 | rm -rf ~/.config/zed/settings.json 155 | ln -s "${current_dir}/zed/settings.json" ~/.config/zed/settings.json 156 | ln -s "${current_dir}/zed/keymap.json" ~/.config/zed/keymap.json 157 | ln -s "${current_dir}/zed/themes" ~/.config/zed/themes 158 | 159 | # Install bin 160 | create_symlinks "bin" "$HOME/.local/bin/" 161 | 162 | 163 | ~/.local/bin/set_wallpaper ~/.config/hypr/wallpapers/wallpaper.png 164 | 165 | # Install pacman config 166 | sudo cp ./pacman.conf /etc/pacman.conf 167 | 168 | # Ranger dev icons 169 | git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons 170 | rm -rf ~/.config/ranger/rc.conf 171 | rm -rf ~/.config/ranger/scope.sh 172 | rm -rf ~/.config/ranger/rifle.conf 173 | ln -s "${current_dir}/ranger/rc.conf" ~/.config/ranger/rc.conf 174 | ln -s "${current_dir}/ranger/scope.sh" ~/.config/ranger/scope.sh 175 | ln -s "${current_dir}/ranger/rifle.conf" ~/.config/ranger/rifle.conf 176 | 177 | # Webcord flags 178 | rm -f ~/.config/code-flags.conf 179 | ln -s "${current_dir}/electron-flags.conf" ~/.config/code-flags.conf 180 | 181 | # Webcord flags 182 | rm -f ~/.config/webcord-flags.conf 183 | ln -s "${current_dir}/electron-flags.conf" ~/.config/webcord-flags.conf 184 | 185 | # Obsidian flags 186 | rm -f ~/.config/obsidian/user-flags.conf 187 | ln -s "${current_dir}/electron-flags.conf" ~/.config/obsidian/user-flags.conf 188 | 189 | # Add shutdown, hibernate and suspend desktop entries for rofi 190 | ln -sf "${current_dir}/applications/suspend.desktop" ~/.local/share/applications/suspend.desktop 191 | ln -sf "${current_dir}/applications/shutdown.desktop" ~/.local/share/applications/shutdown.desktop 192 | ln -sf "${current_dir}/applications/hibernate.desktop" ~/.local/share/applications/hibernate.desktop 193 | 194 | # Enable bluetooth 195 | sudo systemctl enable bluetooth.service --now 196 | 197 | # Configure virtual machines 198 | sudo systemctl enable libvirtd.service --now 199 | sudo virsh net-start default 200 | sudo virsh net-autostart default 201 | 202 | sudo usermod -aG libvirt $USER 203 | sudo usermod -aG libvirt-qemu $USER 204 | sudo usermod -aG kvm $USER 205 | sudo usermod -aG docker $USER 206 | sudo usermod -aG video $USER 207 | 208 | flatpak override --filesystem=~/.themes:ro --filesystem=~/.icons:ro --user 209 | mkdir -p ~/.icons 210 | 211 | # Install zed 212 | curl -f https://zed.dev/install.sh | ZED_CHANNEL=preview sh 213 | 214 | ln -sf "${current_dir}/zshrc" ~/.zshrc 215 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended --keep-zshrc 216 | 217 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting 218 | git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions 219 | -------------------------------------------------------------------------------- /nvim/.neoconf.json: -------------------------------------------------------------------------------- 1 | { 2 | "neodev": { 3 | "library": { 4 | "enabled": true, 5 | "plugins": true 6 | } 7 | }, 8 | "neoconf": { 9 | "plugins": { 10 | "lua_ls": { 11 | "enabled": true 12 | } 13 | } 14 | }, 15 | "lspconfig": { 16 | "lua_ls": { 17 | "Lua.format.enable": false 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /nvim/.stylua.toml: -------------------------------------------------------------------------------- 1 | column_width = 120 2 | line_endings = "Unix" 3 | indent_type = "Spaces" 4 | indent_width = 2 5 | quote_style = "AutoPreferDouble" 6 | call_parentheses = "None" 7 | collapse_simple_statement = "Always" 8 | -------------------------------------------------------------------------------- /nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution 2 | -- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk. 3 | local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim" 4 | if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then 5 | -- stylua: ignore 6 | vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) 7 | end 8 | vim.opt.rtp:prepend(lazypath) 9 | 10 | -- validate that lazy is available 11 | if not pcall(require, "lazy") then 12 | -- stylua: ignore 13 | vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) 14 | vim.fn.getchar() 15 | vim.cmd.quit() 16 | end 17 | 18 | require "lazy_setup" 19 | require "polish" 20 | -------------------------------------------------------------------------------- /nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "AstroNvim": { "branch": "main", "commit": "c5e610f614e74c9dd9bf11760c4d0ad2c98c0abe" }, 3 | "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, 4 | "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, 5 | "SchemaStore.nvim": { "branch": "main", "commit": "6c52c57432280c54596feb0c0958e1a6cb546f4d" }, 6 | "aerial.nvim": { "branch": "master", "commit": "3284a2cb858ba009c79da87d5e010ccee3c99c4d" }, 7 | "alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" }, 8 | "astrocommunity": { "branch": "main", "commit": "62865efa7b1541d125db8595727e9a37e91f6f6b" }, 9 | "astrocore": { "branch": "main", "commit": "44a3dc0bf1591022b2a6bc89dccdfac1be17bec9" }, 10 | "astrolsp": { "branch": "main", "commit": "909fbe64f3f87d089ff3777751261544557117cc" }, 11 | "astrotheme": { "branch": "main", "commit": "f12dcf64b1f9a05839c3ac2146f550f43bae9dab" }, 12 | "astroui": { "branch": "main", "commit": "e923a84c488d879a260fc9cfb2dc27dd870fb6ac" }, 13 | "better-escape.nvim": { "branch": "master", "commit": "199dcc2643dec5d8dbdab4ec672cf405224dcb3b" }, 14 | "clangd_extensions.nvim": { "branch": "main", "commit": "db28f29be928d18cbfb86fbfb9f83f584f658feb" }, 15 | "cmake-tools.nvim": { "branch": "master", "commit": "591ae37fc5494677e929118f0a182d2b61fe1af1" }, 16 | "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, 17 | "cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" }, 18 | "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, 19 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 20 | "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, 21 | "copilot.lua": { "branch": "master", "commit": "5f726c8e6bbcd7461ee0b870d4e6c8a973b55b64" }, 22 | "crates.nvim": { "branch": "main", "commit": "5d8b1bef686db0fabe5f1bb593744b617e8f1405" }, 23 | "deno-nvim": { "branch": "master", "commit": "5a2f9205df5539c4a0696e73893bf8d1b0cae406" }, 24 | "dressing.nvim": { "branch": "master", "commit": "3a45525bb182730fe462325c99395529308f431e" }, 25 | "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, 26 | "gitsigns.nvim": { "branch": "main", "commit": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9" }, 27 | "gopher.nvim": { "branch": "main", "commit": "9db5931af1293ae52500921d92c02145d86df02c" }, 28 | "guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" }, 29 | "heirline.nvim": { "branch": "master", "commit": "fae936abb5e0345b85c3a03ecf38525b0828b992" }, 30 | "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, 31 | "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 32 | "lazydev.nvim": { "branch": "main", "commit": "f59bd14a852ca43db38e3662395354cb2a9b13e0" }, 33 | "lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" }, 34 | "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, 35 | "mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" }, 36 | "mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" }, 37 | "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, 38 | "mini.bufremove": { "branch": "main", "commit": "285bdac9596ee7375db50c0f76ed04336dcd2685" }, 39 | "neo-tree.nvim": { "branch": "main", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" }, 40 | "neoconf.nvim": { "branch": "main", "commit": "f630568a4d04154803886f21ca60923f12709f0f" }, 41 | "none-ls.nvim": { "branch": "main", "commit": "a117163db44c256d53c3be8717f3e1a2a28e6299" }, 42 | "nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" }, 43 | "nvim": { "branch": "main", "commit": "a0c769bc7cd04bbbf258b3d5f01e2bdce744108d" }, 44 | "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, 45 | "nvim-cmp": { "branch": "main", "commit": "1e1900b0769324a9675ef85b38f99cca29e203b3" }, 46 | "nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" }, 47 | "nvim-dap": { "branch": "master", "commit": "6a5bba0ddea5d419a783e170c20988046376090d" }, 48 | "nvim-dap-go": { "branch": "main", "commit": "8763ced35b19c8dc526e04a70ab07c34e11ad064" }, 49 | "nvim-dap-python": { "branch": "master", "commit": "261ce649d05bc455a29f9636dc03f8cdaa7e0e2c" }, 50 | "nvim-dap-ui": { "branch": "master", "commit": "bc81f8d3440aede116f821114547a476b082b319" }, 51 | "nvim-jdtls": { "branch": "master", "commit": "c23f200fee469a415c77265ca55b496feb646992" }, 52 | "nvim-lsp-file-operations": { "branch": "master", "commit": "9744b738183a5adca0f916527922078a965515ed" }, 53 | "nvim-lspconfig": { "branch": "master", "commit": "185b2af444b27d6541c02d662b5b68190e5cf0c4" }, 54 | "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, 55 | "nvim-notify": { "branch": "master", "commit": "a3020c2cf4dfc4c4f390c4a21e84e35e46cf5d17" }, 56 | "nvim-treesitter": { "branch": "master", "commit": "f8aaf5ce4e27cd20de917946b2ae5c968a2c2858" }, 57 | "nvim-treesitter-textobjects": { "branch": "master", "commit": "9937e5e356e5b227ec56d83d0a9d0a0f6bc9cad4" }, 58 | "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, 59 | "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, 60 | "nvim-ufo": { "branch": "main", "commit": "61463090a4f55f5d080236ea62f09d1cd8976ff3" }, 61 | "nvim-vtsls": { "branch": "main", "commit": "60b493e641d3674c030c660cabe7a2a3f7a914be" }, 62 | "nvim-web-devicons": { "branch": "master", "commit": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c" }, 63 | "nvim-window-picker": { "branch": "main", "commit": "6382540b2ae5de6c793d4aa2e3fe6dbb518505ec" }, 64 | "package-info.nvim": { "branch": "master", "commit": "4f1b8287dde221153ec9f2acd46e8237d2d0881e" }, 65 | "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, 66 | "promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" }, 67 | "resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" }, 68 | "rustaceanvim": { "branch": "master", "commit": "5120207f90846704a74cbf043295698b009bd5de" }, 69 | "smart-splits.nvim": { "branch": "master", "commit": "ddb23c1a1cf1507bda487cda7f6e4690965ef9f5" }, 70 | "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, 71 | "telescope.nvim": { "branch": "master", "commit": "a17d611a0e111836a1db5295f04945df407c5135" }, 72 | "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, 73 | "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, 74 | "transparent.nvim": { "branch": "main", "commit": "d41ae9b56ac2706cb3db4b16afe5cd6903013937" }, 75 | "tsc.nvim": { "branch": "main", "commit": "8c1b4ec6a48d038a79ced8674cb15e7db6dd8ef0" }, 76 | "venv-selector.nvim": { "branch": "regexp", "commit": "c43dc6bf8c7e7cf124a991775ed3defe87112d3a" }, 77 | "vim-illuminate": { "branch": "master", "commit": "19cb21f513fc2b02f0c66be70107741e837516a1" }, 78 | "which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" } 79 | } 80 | -------------------------------------------------------------------------------- /nvim/lua/community.lua: -------------------------------------------------------------------------------- 1 | ---@type LazySpec 2 | return { 3 | "AstroNvim/astrocommunity", 4 | { import = "astrocommunity.pack.rust" }, 5 | { import = "astrocommunity.pack.go" }, 6 | { import = "astrocommunity.pack.java" }, 7 | { import = "astrocommunity.completion.copilot-lua" }, 8 | { import = "astrocommunity.pack.python" }, 9 | { import = "astrocommunity.pack.cpp" }, 10 | { import = "astrocommunity.pack.typescript-all-in-one" }, 11 | { import = "astrocommunity.color.transparent-nvim" }, 12 | } 13 | -------------------------------------------------------------------------------- /nvim/lua/lazy_setup.lua: -------------------------------------------------------------------------------- 1 | require("lazy").setup({ 2 | { 3 | "AstroNvim/AstroNvim", 4 | version = "^4", -- Remove version tracking to elect for nighly AstroNvim 5 | import = "astronvim.plugins", 6 | opts = { -- AstroNvim options must be set here with the `import` key 7 | mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up 8 | maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up 9 | icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available) 10 | pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override 11 | update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins 12 | }, 13 | }, 14 | { import = "community" }, 15 | { import = "plugins" }, 16 | } --[[@as LazySpec]], { 17 | -- Configure any other `lazy.nvim` configuration options here 18 | install = { colorscheme = { "astrodark", "habamax" } }, 19 | ui = { backdrop = 100 }, 20 | performance = { 21 | rtp = { 22 | -- disable some rtp plugins, add more to your liking 23 | disabled_plugins = { 24 | "gzip", 25 | "netrwPlugin", 26 | "tarPlugin", 27 | "tohtml", 28 | "zipPlugin", 29 | }, 30 | }, 31 | }, 32 | } --[[@as LazyConfig]]) 33 | -------------------------------------------------------------------------------- /nvim/lua/plugins/astroui.lua: -------------------------------------------------------------------------------- 1 | ---@type LazySpec 2 | return { 3 | ---@type AstroUIOpts 4 | "AstroNvim/astroui", 5 | opts = { 6 | colorscheme = "catppuccin-mocha", 7 | icons = { 8 | LSPLoading1 = "⠋", 9 | LSPLoading2 = "⠙", 10 | LSPLoading3 = "⠹", 11 | LSPLoading4 = "⠸", 12 | LSPLoading5 = "⠼", 13 | LSPLoading6 = "⠴", 14 | LSPLoading7 = "⠦", 15 | LSPLoading8 = "⠧", 16 | LSPLoading9 = "⠇", 17 | LSPLoading10 = "⠏", 18 | }, 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /nvim/lua/plugins/catppuccin.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "catppuccin/nvim", 3 | opts = { 4 | transparent_background = true, -- catppuccin has this option built-in 5 | integrations = { 6 | -- enable integrations as you like 7 | }, 8 | }, 9 | config = function(_, opts) 10 | require("catppuccin").setup(opts) 11 | vim.cmd("colorscheme catppuccin") 12 | end, 13 | } 14 | -------------------------------------------------------------------------------- /nvim/lua/plugins/user.lua: -------------------------------------------------------------------------------- 1 | -- You can also add or configure plugins by creating files in this `plugins/` folder 2 | -- Here are some examples: 3 | 4 | ---@type LazySpec 5 | return { 6 | { 7 | "goolord/alpha-nvim", 8 | opts = function(_, opts) 9 | -- customize the dashboard header 10 | -- https://manytools.org/hacker-tools/ascii-banner/ for ascii art using ANSI Shadow 11 | opts.section.header.val = { 12 | "██████╗ █████╗ ██████╗ ██╗ ██╗███████╗██████╗ ", 13 | "██╔══██╗██╔══██╗██╔══██╗██║ ██╔╝██╔════╝██╔══██╗", 14 | "██████╔╝███████║██████╔╝█████╔╝ █████╗ ██████╔╝", 15 | "██╔═══╝ ██╔══██║██╔══██╗██╔═██╗ ██╔══╝ ██╔══██╗", 16 | "██║ ██║ ██║██║ ██║██║ ██╗███████╗██║ ██║", 17 | "╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝", 18 | " ", 19 | " ███╗ ██╗██╗ ██╗██╗███╗ ███╗ ", 20 | " ████╗ ██║██║ ██║██║████╗ ████║ ", 21 | " ██╔██╗ ██║██║ ██║██║██╔████╔██║ ", 22 | " ██║╚██╗██║╚██╗ ██╔╝██║██║╚██╔╝██║ ", 23 | " ██║ ╚████║ ╚████╔╝ ██║██║ ╚═╝ ██║ ", 24 | " ╚═╝ ╚═══╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ", 25 | } 26 | return opts 27 | end, 28 | }, 29 | { 30 | "rcarriga/nvim-notify", 31 | opts = function(_, opts) 32 | opts.setup = { 33 | background_color = "#000000", 34 | } 35 | end, 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /nvim/lua/polish.lua: -------------------------------------------------------------------------------- 1 | vim.cmd("set mouse=") 2 | vim.cmd("set wrap") 3 | 4 | -------------------------------------------------------------------------------- /nvim/neovim.yml: -------------------------------------------------------------------------------- 1 | --- 2 | base: lua51 3 | 4 | globals: 5 | vim: 6 | any: true 7 | -------------------------------------------------------------------------------- /nvim/selene.toml: -------------------------------------------------------------------------------- 1 | std = "neovim" 2 | 3 | [rules] 4 | global_usage = "allow" 5 | if_same_then_else = "allow" 6 | incorrect_standard_library_use = "allow" 7 | mixed_table = "allow" 8 | multiple_statements = "allow" 9 | -------------------------------------------------------------------------------- /omf/bundle: -------------------------------------------------------------------------------- 1 | theme agnoster 2 | theme default 3 | -------------------------------------------------------------------------------- /omf/channel: -------------------------------------------------------------------------------- 1 | stable 2 | -------------------------------------------------------------------------------- /omf/theme: -------------------------------------------------------------------------------- 1 | agnoster 2 | -------------------------------------------------------------------------------- /pacman.conf: -------------------------------------------------------------------------------- 1 | [options] 2 | HoldPkg = pacman glibc 3 | Architecture = auto 4 | Color 5 | VerbosePkgLists 6 | ParallelDownloads=10 7 | ILoveCandy 8 | CheckSpace 9 | SigLevel = Required DatabaseOptional 10 | LocalFileSigLevel = Optional 11 | 12 | # NOTE: You must run `pacman-key --init` before first using pacman; the local 13 | # keyring can then be populated with the keys of all official Arch Linux 14 | # packagers with `pacman-key --populate archlinux`. 15 | 16 | #[core-testing] 17 | #Include = /etc/pacman.d/mirrorlist 18 | 19 | [core] 20 | Include = /etc/pacman.d/mirrorlist 21 | 22 | #[extra-testing] 23 | #Include = /etc/pacman.d/mirrorlist 24 | 25 | [extra] 26 | Include = /etc/pacman.d/mirrorlist 27 | 28 | # If you want to run 32 bit applications on your x86_64 system, 29 | # enable the multilib repositories as required here. 30 | 31 | #[multilib-testing] 32 | #Include = /etc/pacman.d/mirrorlist 33 | 34 | #[multilib] 35 | #Include = /etc/pacman.d/mirrorlist 36 | 37 | # An example of a custom package repository. See the pacman manpage for 38 | # tips on creating your own repositories. 39 | #[custom] 40 | #SigLevel = Optional TrustAll 41 | #Server = file:///home/custompkgs 42 | -------------------------------------------------------------------------------- /picom/picom.conf: -------------------------------------------------------------------------------- 1 | ################### FADING ################### 2 | fading = true; 3 | fade-in-step = 0.06; 4 | fade-out-step = 0.06; 5 | 6 | ################### OPACITY ################### 7 | frame-opacity = 0.1; 8 | inactive-opacity-override = false; 9 | inactive-opacity = 1; 10 | active-opacity = 1; 11 | blur-kern = "3x3box"; 12 | blur-background-exclude = [ 13 | "window_type = 'desktop'", 14 | "_GTK_FRAME_EXTENTS@:c" 15 | ]; 16 | opacity-rule = [ 17 | "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'", 18 | "100:class_g = 'i3bar'", 19 | "80:class_g = 'i3-frame'" 20 | ]; 21 | 22 | ################### OTHER ################### 23 | backend = "glx"; 24 | vsync = true; 25 | glx-swap-method = 2; 26 | mark-wmwin-focused = true; 27 | mark-ovredir-focused = true; 28 | detect-rounded-corners = true; 29 | detect-client-opacity = true; 30 | unredir-if-possible = false 31 | detect-transient = true 32 | detect-client-leader = true 33 | use-damage = true 34 | log-level = "warn"; 35 | 36 | ################### WINTYPES ################### 37 | wintypes: 38 | { 39 | tooltip = { opacity = 0.9; }; 40 | popup_menu = { opacity = 0.9; } 41 | dropdown_menu = { opacity = 0.9; } 42 | }; 43 | 44 | ################### ROUNDED CORNERS ################### 45 | # previous : 13 46 | corner-radius = 8; 47 | round-borders = 0; 48 | rounded-corners-exclude = [ 49 | "class_g = 'i3bar'", 50 | "class_g = 'rofi'", 51 | #"class_g = 'i3-frame'" 52 | ]; 53 | 54 | 55 | -------------------------------------------------------------------------------- /polybar/colors.ini: -------------------------------------------------------------------------------- 1 | [colors] 2 | bg-1 = #12121f 3 | bg-2 = #222236 4 | bg-3 = #0029293f 5 | 6 | fg-1 = #d4d7ff 7 | fg-2 = #e4e7ff 8 | fg-3 = #f4f7ff 9 | 10 | red-1 = #d54c73 11 | red-2 = #d95177 12 | red-3 = #df4e75 13 | 14 | green-1 = #78dca7 15 | green-2 = #7bdba6 16 | green-3 = #84e5ac 17 | 18 | yellow-1 = #fcf295 19 | yellow-2 = #fcf39c 20 | yellow-3 = #fcf4a2 21 | 22 | blue-1 = #6d98e8 23 | blue-2 = #759eea 24 | blue-3 = #7ea4ec 25 | 26 | cyan-1 = #65dedc 27 | cyan-2 = #6be5e3 28 | cyan-3 = #72e7e5 29 | 30 | orange-1 = #e3b56f 31 | orange-2 = #e5b976 32 | orange-3 = #e5ba7a 33 | 34 | purple-1 = #837dd7 35 | purple-2 = #8783d9 36 | purple-3 = #908cdb 37 | -------------------------------------------------------------------------------- /polybar/config.ini: -------------------------------------------------------------------------------- 1 | [global/wm] 2 | margin-top = 0 3 | margin-bottom = 0 4 | include-file = $HOME/.config/polybar/colors.ini 5 | include-file = $HOME/.config/polybar/modules/sys_info.ini 6 | include-file = $HOME/.config/polybar/modules/network.ini 7 | include-file = $HOME/.config/polybar/modules/audio.ini 8 | include-file = $HOME/.config/polybar/modules/util.ini 9 | include-file = $HOME/.config/polybar/modules/misc.ini 10 | 11 | 12 | [bar/main-bar] 13 | monitor = ${env:MONITOR:} 14 | overide-redirect = true 15 | 16 | enable-ipc = true 17 | 18 | tray-detached = false 19 | tray-position = right 20 | # tray-offset-y = -8pt 21 | bottom = false 22 | 23 | fixed-center = true 24 | 25 | width = 100% 26 | height = 18pt 27 | # offset-x = 98% 28 | # offset-y = 8pt 29 | 30 | border-size = 5pt 31 | # border-color = ${colors.bg-3} 32 | 33 | line-size = 1pt 34 | 35 | padding-left = 0pt 36 | padding-right = 0pt 37 | 38 | module-margin-left = 0pt 39 | module-margin-right = 0pt 40 | 41 | background = ${colors.bg-3} 42 | foreground = ${colors.fg-3} 43 | 44 | font-0 = JetBrainsMono NF:size=13;4 45 | font-1 = JetBrainsMono NF:size=20;4.5 46 | font-2 = JetBrainsMono NF:size=25;6 47 | font-3 = JetBrainsMono NF:size=16;4 48 | 49 | scroll-up = i3.next 50 | scroll-down = i3.prev 51 | 52 | modules-left = left filesystem slash cpu slash memory slash xworkspaces-0 right 53 | modules-center = left xwindows right 54 | modules-right = left pulseaudio slash network slash battery slash time slash date right 55 | 56 | wm-restock = i3 57 | [settings] 58 | screenschange-reload = true 59 | pseduo-transparency = false 60 | -------------------------------------------------------------------------------- /polybar/modules/audio.ini: -------------------------------------------------------------------------------- 1 | [module/pulseaudio] 2 | type = internal/pulseaudio 3 | use-ui-max = false 4 | interval = 1 5 | 6 | format-volume = 7 | format-volume-prefix = " " 8 | format-volume-prefix-underline = ${colors.purple-1} 9 | format-volume-prefix-background = ${colors.bg-1} 10 | format-volume-prefix-foreground = ${colors.purple-2} 11 | label-volume = %percentage%% 12 | label-volume-underline = ${colors.purple-1} 13 | label-volume-background = ${colors.bg-1} 14 | label-volume-foreground = ${colors.fg-3} 15 | 16 | format-muted = 17 | label-muted = "ﱝ " 18 | label-muted-underline = ${colors.red-2} 19 | label-muted-background = ${colors.bg-1} 20 | label-muted-foreground = ${colors.red-3} 21 | -------------------------------------------------------------------------------- /polybar/modules/misc.ini: -------------------------------------------------------------------------------- 1 | [module/slash] 2 | type = custom/text 3 | content = / 4 | content-background = ${colors.bg-1} 5 | content-foreground = ${colors.bg-3} 6 | content-font = 3 7 | 8 | [module/line] 9 | type = custom/text 10 | content = | 11 | content-background = ${colors.bg-1} 12 | content-foreground = ${colors.fg-3} 13 | content-font = 3 14 | 15 | 16 | [module/space] 17 | type = custom/text 18 | content = " " 19 | content-background = ${colors.bg-1} 20 | content-foreground = ${colors.bg-1} 21 | 22 | 23 | [module/left] 24 | type = custom/text 25 | content-background = ${colors.bg-3} 26 | content-foreground = ${colors.bg-1} 27 | content-font = 2 28 | content = %{T3}%{T-} 29 | 30 | [module/right] 31 | type = custom/text 32 | content-background = ${colors.bg-3} 33 | content-foreground = ${colors.bg-1} 34 | content-font = 2 35 | content = %{T3}%{T-} 36 | -------------------------------------------------------------------------------- /polybar/modules/network.ini: -------------------------------------------------------------------------------- 1 | [module/wlan-speed] 2 | type = internal/network 3 | interface-type = wireless 4 | interval = 1.0 5 | 6 | format-connected = 7 | format-connected-underline = ${colors.cyan-2} 8 | format-connected-background = ${colors.bg-1} 9 | format-connected-foreground = ${colors.fg-1} 10 | 11 | format-disconnected = 12 | format-disconnected-underline = ${colors.red-2} 13 | format-disconnected-background = ${colors.bg-1} 14 | format-disconnected-foreground = ${colors.fg-1} 15 | 16 | label-connected = %upspeed% %downspeed% 17 | label-connected-underline = ${colors.cyan-2} 18 | label-connected-background = ${colors.bg-1} 19 | label-connected-foreground = ${colors.fg-1} 20 | 21 | label-disconnected-prefix = "睊 " 22 | label-disconnected-prefix-foreground = ${colors.red-2} 23 | label-disconnected = "Offline" 24 | label-disconnected-underline = ${colors.red-2} 25 | label-disconnected-background = ${colors.bg-1} 26 | label-disconnected-foreground = ${colors.fg-1} 27 | 28 | 29 | [module/network] 30 | type = internal/network 31 | interface-type = wireless 32 | interval = 3.0 33 | accumulate-stats = true 34 | unknown-as-up = true 35 | speed-unit = B/s 36 | 37 | format-connected = 38 | format-connected-prefix = "󰤨 " 39 | format-connected-prefix-underline = ${colors.cyan-2} 40 | format-connected-prefix-background = ${colors.bg-1} 41 | format-connected-prefix-foreground = ${colors.cyan-2} 42 | 43 | format-disconnected = 44 | format-disconnected-prefix = "󰤮 " 45 | format-disconnected-prefix-underline = ${colors.red-2} 46 | format-disconnected-prefix-background = ${colors.bg-1} 47 | format-disconnected-prefix-foreground = ${colors.red-2} 48 | 49 | label-connected = %netspeed% 50 | label-connected-underline = ${colors.cyan-2} 51 | label-connected-background = ${colors.bg-1} 52 | label-connected-foreground = ${colors.fg-1} 53 | 54 | label-disconnected = "Offline" 55 | label-disconnected-underline = ${colors.red-2} 56 | label-disconnected-background = ${colors.bg-1} 57 | label-disconnected-foreground = ${colors.fg-1} 58 | -------------------------------------------------------------------------------- /polybar/modules/sys_info.ini: -------------------------------------------------------------------------------- 1 | [module/filesystem] 2 | type = internal/fs 3 | interval = 25 4 | 5 | mount-0 = / 6 | format-mounted-prefix = " " 7 | format-mounted-prefix-underline = ${colors.purple-1} 8 | format-mounted-prefix-background = ${colors.bg-1} 9 | format-mounted-prefix-foreground = ${colors.purple-2} 10 | label-mounted = %used% 11 | label-mounted-underline = ${colors.purple-1} 12 | label-mounted-background = ${colors.bg-1} 13 | label-mounted-foreground = ${colors.fg-3} 14 | 15 | 16 | [module/cpu] 17 | type = internal/cpu 18 | interval = 2 19 | format-prefix = " " 20 | format-prefix-underline = ${colors.cyan-2} 21 | format-prefix-foreground = ${colors.cyan-2} 22 | format-background = ${colors.bg-1} 23 | format =