Migrated to ansible
48
roles/ags/files/config.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const systemtray = await Service.import('systemtray')
|
||||
|
||||
/** @param {import('types/service/systemtray').TrayItem} item */
|
||||
const SysTrayItem = item => Widget.Button({
|
||||
child: Widget.Icon().bind('icon', item, 'icon'),
|
||||
tooltipMarkup: item.bind('tooltip_markup'),
|
||||
onPrimaryClick: (_, event) => item.activate(event),
|
||||
onSecondaryClick: (_, event) => item.openMenu(event),
|
||||
});
|
||||
|
||||
function SysTray() {
|
||||
return Widget.Box({ children: systemtray.bind('items').transform(i => i.map(SysTrayItem)) });
|
||||
}
|
||||
|
||||
function Bar(monitor = 0) {
|
||||
const lTime = Widget.Label({
|
||||
label: 'TIME',
|
||||
});
|
||||
|
||||
Utils.interval(1000, () => {
|
||||
lTime.label = Utils.exec('date +%H:%M');
|
||||
//date +%d.%m.%Y
|
||||
});
|
||||
|
||||
const bTimeDate = Widget.Box({
|
||||
children: [lTime]
|
||||
});
|
||||
|
||||
const bInfo = Widget.Box({
|
||||
hpack: "end",
|
||||
children: [SysTray()]
|
||||
});
|
||||
|
||||
return Widget.Window({
|
||||
monitor,
|
||||
exclusivity: 'exclusive',
|
||||
name: `bar ${monitor}`,
|
||||
anchor: ['top', 'left', 'right'],
|
||||
child: Widget.CenterBox({
|
||||
centerWidget: bTimeDate,
|
||||
endWidget: bInfo,
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
windows: [Bar(1), Bar(2)]
|
||||
};
|
||||
19
roles/ags/tasks/main.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: "[AGS] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- aylurs-gtk-shell-git
|
||||
use: paru
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: "[AGS] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/ags"
|
||||
state: directory
|
||||
|
||||
- name: "[AGS] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/ags"
|
||||
19
roles/alacritty/files/alacritty.toml
Normal file
@@ -0,0 +1,19 @@
|
||||
import = [
|
||||
# Theme
|
||||
"~/.config/alacritty/catppuccin-macchiato.toml"
|
||||
]
|
||||
|
||||
[env]
|
||||
TERM = "xterm-256color"
|
||||
|
||||
[window]
|
||||
opacity = 0.7
|
||||
decorations = "None"
|
||||
padding = { x = 0, y = 0 }
|
||||
|
||||
[font]
|
||||
normal = {family = "CaskaydiaCove Nerd Font", style = "Mono"}
|
||||
|
||||
[cursor]
|
||||
style = {shape = "Beam", blinking = "On"}
|
||||
vi_mode_style = {shape = "Block", blinking = "On"}
|
||||
97
roles/alacritty/files/catppuccin-macchiato.toml
Normal file
@@ -0,0 +1,97 @@
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2021 Catppuccin
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
[colors.primary]
|
||||
background = "#24273A"
|
||||
foreground = "#CAD3F5"
|
||||
dim_foreground = "#CAD3F5"
|
||||
bright_foreground = "#CAD3F5"
|
||||
|
||||
[colors.cursor]
|
||||
text = "#24273A"
|
||||
cursor = "#F4DBD6"
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = "#24273A"
|
||||
cursor = "#B7BDF8"
|
||||
|
||||
[colors.search.matches]
|
||||
foreground = "#24273A"
|
||||
background = "#A5ADCB"
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = "#24273A"
|
||||
background = "#A6DA95"
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = "#24273A"
|
||||
background = "#A5ADCB"
|
||||
|
||||
[colors.hints.start]
|
||||
foreground = "#24273A"
|
||||
background = "#EED49F"
|
||||
|
||||
[colors.hints.end]
|
||||
foreground = "#24273A"
|
||||
background = "#A5ADCB"
|
||||
|
||||
[colors.selection]
|
||||
text = "#24273A"
|
||||
background = "#F4DBD6"
|
||||
|
||||
[colors.normal]
|
||||
black = "#494D64"
|
||||
red = "#ED8796"
|
||||
green = "#A6DA95"
|
||||
yellow = "#EED49F"
|
||||
blue = "#8AADF4"
|
||||
magenta = "#F5BDE6"
|
||||
cyan = "#8BD5CA"
|
||||
white = "#B8C0E0"
|
||||
|
||||
[colors.bright]
|
||||
black = "#5B6078"
|
||||
red = "#ED8796"
|
||||
green = "#A6DA95"
|
||||
yellow = "#EED49F"
|
||||
blue = "#8AADF4"
|
||||
magenta = "#F5BDE6"
|
||||
cyan = "#8BD5CA"
|
||||
white = "#A5ADCB"
|
||||
|
||||
[colors.dim]
|
||||
black = "#494D64"
|
||||
red = "#ED8796"
|
||||
green = "#A6DA95"
|
||||
yellow = "#EED49F"
|
||||
blue = "#8AADF4"
|
||||
magenta = "#F5BDE6"
|
||||
cyan = "#8BD5CA"
|
||||
white = "#B8C0E0"
|
||||
|
||||
[[colors.indexed_colors]]
|
||||
index = 16
|
||||
color = "#F5A97F"
|
||||
|
||||
[[colors.indexed_colors]]
|
||||
index = 17
|
||||
color = "#F4DBD6"
|
||||
20
roles/alacritty/tasks/main.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
- name: "[Alacritty] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- alacritty
|
||||
- ueberzugpp
|
||||
use: paru
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: "[Alacritty] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/alacritty"
|
||||
state: directory
|
||||
|
||||
- name: "[Alacritty] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/alacritty"
|
||||
47
roles/bash/files/.bashrc
Normal file
@@ -0,0 +1,47 @@
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# Load starship prompt if starship is installed
|
||||
eval "$(starship init bash)"
|
||||
|
||||
## Aliases
|
||||
# Replace ls with eza
|
||||
alias ls='eza -al --color=always --group-directories-first' # preferred listing
|
||||
alias la='eza -a --color=always --group-directories-first' # all files and dirs
|
||||
alias ll='eza -l --color=always --group-directories-first' # long format
|
||||
alias lt='eza -aT --color=always --group-directories-first' # tree listing
|
||||
alias l.='eza -ald --color=always --group-directories-first .*' # show only dotfiles
|
||||
|
||||
# Replace cat with bat
|
||||
alias cat='bat --style header --style snip --style changes --style header'
|
||||
|
||||
# Replace yay with paru
|
||||
[ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru'
|
||||
|
||||
# Aliases
|
||||
alias cls='clear'
|
||||
alias dir='dir --color=auto'
|
||||
alias egrep='grep -E --color=auto'
|
||||
alias fgrep='grep -F --color=auto'
|
||||
alias igrep='grep -i --color=auto'
|
||||
alias fixpacman="sudo rm /var/lib/pacman/db.lck"
|
||||
alias grep='grep --color=auto'
|
||||
alias grubup="sudo update-grub"
|
||||
alias hw='hwinfo --short'
|
||||
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
||||
alias psmem='ps auxf | sort -nr -k 4'
|
||||
alias rmpkg="sudo pacman -Rdd"
|
||||
alias tarnow='tar -acf '
|
||||
alias untar='tar -zxvf '
|
||||
alias upd='/usr/bin/update'
|
||||
alias vdir='vdir --color=auto'
|
||||
alias wget='wget -c '
|
||||
|
||||
# Cleanup orphaned packages
|
||||
alias cleanup='sudo pacman -Rns `pacman -Qtdq`'
|
||||
|
||||
# Get the error messages from journalctl
|
||||
alias jctl="journalctl -p 3 -xb"
|
||||
|
||||
# Recent installed packages
|
||||
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl"
|
||||
12
roles/bash/tasks/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
- name: "[Bash] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- bash
|
||||
state: latest
|
||||
become: yes
|
||||
|
||||
- name: "[Bash] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/"
|
||||
248
roles/btop/files/btop.conf
Normal file
@@ -0,0 +1,248 @@
|
||||
#? Config file for btop v. 1.3.2
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
color_theme = "Default"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = True
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = False
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = True
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = True
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "memory"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = False
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = True
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = False
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "total"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "total"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "Auto"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = False
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = False
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = False
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Show power stats of battery next to charge indicator.
|
||||
show_battery_watts = True
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
18
roles/btop/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: "[Btop] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- btop
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[Btop] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/btop"
|
||||
state: directory
|
||||
|
||||
- name: "[Btop] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/btop"
|
||||
1
roles/discord/files/Preferences
Normal file
@@ -0,0 +1 @@
|
||||
{"spellcheck":{"dictionaries":["en-GB", "de-DE"],"dictionary":""}}
|
||||
3
roles/discord/files/storage/lang.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"lang": "en-US"
|
||||
}
|
||||
26
roles/discord/files/storage/settings.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"windowStyle": "native",
|
||||
"channel": "stable",
|
||||
"armcordCSP": true,
|
||||
"minimizeToTray": true,
|
||||
"keybinds": [],
|
||||
"alternativePaste": false,
|
||||
"multiInstance": false,
|
||||
"mods": "none",
|
||||
"spellcheck": true,
|
||||
"performanceMode": "none",
|
||||
"skipSplash": false,
|
||||
"inviteWebsocket": true,
|
||||
"startMinimized": false,
|
||||
"dynamicIcon": false,
|
||||
"tray": true,
|
||||
"customJsBundle": "https://armcord.app/placeholder.js",
|
||||
"customCssBundle": "https://armcord.app/placeholder.css",
|
||||
"disableAutogain": false,
|
||||
"useLegacyCapturer": false,
|
||||
"mobileMode": false,
|
||||
"trayIcon": "default",
|
||||
"doneSetup": true,
|
||||
"clientName": "ArmCord",
|
||||
"customIcon": "/usr/lib/armcord/app.asar/assets/desktop.png"
|
||||
}
|
||||
21
roles/discord/files/themes/Catppuccin-Macchiato-BD/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Catppuccin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1 @@
|
||||
{"theme":"src.css","name":"Catppuccin Macchiato","author":"winston#0001","authorId":"505490445468696576","version":"0.2.0","description":"🎮 Soothing pastel theme for Discord","website":"https://github.com/catppuccin/discord","invite":"r6Mdz5dpFc","updateSrc":"https://raw.githubusercontent.com/catppuccin/discord/main/themes/macchiato.theme.css","supportsArmCordTitlebar":false}
|
||||
11
roles/discord/files/themes/Catppuccin-Macchiato-BD/src.css
Normal file
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* @name Catppuccin Macchiato
|
||||
* @author winston#0001
|
||||
* @authorId 505490445468696576
|
||||
* @version 0.2.0
|
||||
* @description 🎮 Soothing pastel theme for Discord
|
||||
* @website https://github.com/catppuccin/discord
|
||||
* @invite r6Mdz5dpFc
|
||||
* **/
|
||||
|
||||
@import url("https://catppuccin.github.io/discord/dist/catppuccin-macchiato.theme.css");
|
||||
19
roles/discord/tasks/main.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: "[Discord] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- armcord
|
||||
use: paru
|
||||
state: present
|
||||
|
||||
- name: "[Discord] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/ArmCord"
|
||||
state: directory
|
||||
force: false
|
||||
|
||||
- name: "[Discord] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/ArmCord"
|
||||
180
roles/fish/files/config.fish
Executable file
@@ -0,0 +1,180 @@
|
||||
## Set values
|
||||
# Hide welcome message
|
||||
set fish_greeting
|
||||
set VIRTUAL_ENV_DISABLE_PROMPT "1"
|
||||
set -x MANROFFOPT "-c"
|
||||
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
||||
|
||||
## Environment setup
|
||||
if test -f ~/.fish_profile
|
||||
source ~/.fish_profile
|
||||
end
|
||||
|
||||
# Other env vars
|
||||
export EDITOR=nvim
|
||||
export VISUAL=nvim
|
||||
|
||||
# Add ~/.local/bin to PATH
|
||||
if test -d ~/.local/bin
|
||||
if not contains -- ~/.local/bin $PATH
|
||||
set -p PATH ~/.local/bin
|
||||
end
|
||||
end
|
||||
|
||||
# Plugin configuration
|
||||
# Set settings for https://github.com/franciscolourenco/done
|
||||
set -U __done_min_cmd_duration 10000
|
||||
set -U __done_notification_urgency_level low
|
||||
|
||||
# Starship prompt
|
||||
if type -q starship && status --is-interactive
|
||||
starship init fish | source
|
||||
end
|
||||
|
||||
## Functions
|
||||
# Fish command history
|
||||
function history
|
||||
builtin history --show-time='%F %T '
|
||||
end
|
||||
|
||||
function ba --argument filename
|
||||
cp $filename $filename.bak
|
||||
end
|
||||
|
||||
function cp_bar
|
||||
cp $argv[1] $argv[2] &
|
||||
set cpid $last_pid
|
||||
|
||||
progress -mp $cpid
|
||||
kill $cpid &> /dev/null
|
||||
end
|
||||
|
||||
function unzip -a input_file
|
||||
if test -z "$input_file"
|
||||
echo "Usage: unzip <filename.zip>"
|
||||
return 1
|
||||
end
|
||||
|
||||
if test ! -f $input_file
|
||||
echo "Error: File not found - $input_file"
|
||||
return 1
|
||||
end
|
||||
|
||||
set folder_name (basename -s .zip $input_file)
|
||||
|
||||
command unzip "$input_file" -d "$folder_name" && echo "File '$input_file' successfully extracted to '$folder_name/'"
|
||||
end
|
||||
|
||||
function untar -a input_file
|
||||
if test -z "$input_file"
|
||||
echo "Usage: untar <filename.zip>"
|
||||
return 1
|
||||
end
|
||||
|
||||
if test ! -f $input_file
|
||||
echo "Error: File not found - $input_file"
|
||||
return 1
|
||||
end
|
||||
|
||||
set folder_name (string split -m 1 "." $input_file)[1]
|
||||
mkdir $folder_name
|
||||
|
||||
command tar -xvf "$input_file" -C "$folder_name" && echo "File '$input_file' successfully extracted to '$folder_name/'"
|
||||
end
|
||||
|
||||
# Maven
|
||||
function mvn-init -a groupId artifactId -d "Create a simple maven project"
|
||||
if test -z "$groupId" -o -z "$artifactId"
|
||||
echo -e "Usage: mvn-init <groupId> <artifactId>\ngroupId or artifactId missing!"
|
||||
else
|
||||
mvn archetype:generate -DgroupId=$groupId -DartifactId=$artifactId -DinteractiveMode=false
|
||||
end
|
||||
end
|
||||
|
||||
function mvn-run -a mainClass -d "Run your current maven project"
|
||||
if test -z "$mainClass"
|
||||
echo -e "Usgae: mvn-run <mainClass> [arguments]\nmainClass missing!"
|
||||
else
|
||||
set args ""
|
||||
for arg in $argv[2..-1]
|
||||
set args "$args $arg"
|
||||
end
|
||||
|
||||
if test -z $args
|
||||
mvn clean compile exec:java -Dexec.mainClass="$mainClass"
|
||||
else
|
||||
mvn clean compile exec:java -Dexec.mainClass="$mainClass" -Dexec.args="$args"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Yazi wrapper
|
||||
function ya
|
||||
set tmp (mktemp -t "yazi-cwd.XXXXX")
|
||||
yazi $argv --cwd-file="$tmp"
|
||||
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
||||
cd -- "$cwd"
|
||||
end
|
||||
rm -f -- "$tmp"
|
||||
end
|
||||
|
||||
## Aliases
|
||||
# Replace ls with eza
|
||||
if type -q eza
|
||||
alias ls='eza -al --color=always --group-directories-first --icons' # preferred listing
|
||||
alias la='eza -a --color=always --group-directories-first --icons' # all files and dirs
|
||||
alias ll='eza -l --color=always --group-directories-first --icons' # long format
|
||||
alias lt='eza -aT --color=always --group-directories-first --icons' # tree listing
|
||||
alias l.='eza -ald --color=always --group-directories-first --icons .*' # show only dotfiles
|
||||
end
|
||||
|
||||
# Replace cat with bat
|
||||
if type -q bat
|
||||
alias cat='bat --style header --style snip --style changes --style header'
|
||||
end
|
||||
|
||||
# Common use
|
||||
alias :q=exit
|
||||
alias ipn='ip'
|
||||
alias nano=nvim
|
||||
alias cls='clear'
|
||||
alias please='sudo'
|
||||
alias ip='ip -color'
|
||||
alias mkdirs='mkdir --parents'
|
||||
alias grubup="sudo update-grub"
|
||||
alias fixpacman="sudo rm /var/lib/pacman/db.lck"
|
||||
alias tarnow='tar -acf '
|
||||
alias tarlist='tar -tvf '
|
||||
alias wget='wget -c '
|
||||
alias rmpkg='sudo pacman -Rcns '
|
||||
alias purgepkg="sudo pacman -Rdd "
|
||||
alias psmem='ps auxf | sort -nr -k 4'
|
||||
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='grep -F --color=auto'
|
||||
alias egrep='grep -E --color=auto'
|
||||
alias igrep='grep -i --color=auto'
|
||||
alias hw='hwinfo --short' # Hardware Info
|
||||
alias bigpkg="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB
|
||||
alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages
|
||||
alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # Cleanup orphaned packages
|
||||
alias jctl="journalctl -p 3 -xb" # Get the error messages from journalctl
|
||||
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" # Recent installed packages
|
||||
|
||||
# Get fastest mirrors
|
||||
alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist"
|
||||
alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist"
|
||||
alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist"
|
||||
alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist"
|
||||
|
||||
## Run fastfetch if session is interactive
|
||||
if status --is-interactive
|
||||
if type -q fastfetch
|
||||
fastfetch -l arch
|
||||
else if type -q neofetch
|
||||
neofetch --ascii_distro arch
|
||||
end
|
||||
end
|
||||
20
roles/fish/tasks/main.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
- name: "[Fish] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- fish
|
||||
- fish-done
|
||||
- fastfetch
|
||||
use: paru
|
||||
state: present
|
||||
|
||||
- name: "[Fish] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/fish"
|
||||
state: directory
|
||||
|
||||
- name: "[Fish] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/fish"
|
||||
5
roles/hypr/files/devices.conf
Normal file
@@ -0,0 +1,5 @@
|
||||
# Devices
|
||||
device {
|
||||
name = roccat-roccat-kone-emp-mouse
|
||||
sensitivity = -0.5
|
||||
}
|
||||
12
roles/hypr/files/env.conf
Executable file
@@ -0,0 +1,12 @@
|
||||
# Environment
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_THEME,rose-pine-hyprcursor
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = WLR_NO_HARDWARE_CURSORS,1
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
#env = QT_QPA_PLATFORM,wayland
|
||||
env = QT_STYLE_OVERRIDE,kvantum
|
||||
|
||||
# Minecraft
|
||||
env = __GL_THREADED_OPTIMIZATIONS,0
|
||||
98
roles/hypr/files/hyprland.conf
Normal file
@@ -0,0 +1,98 @@
|
||||
# Env
|
||||
source = ~/.config/hypr/env.conf
|
||||
|
||||
# Nvidia
|
||||
# source = ~/.config/hypr/nvidia.conf
|
||||
|
||||
# Keybinds
|
||||
source = ~/.config/hypr/keybinds.conf
|
||||
|
||||
# Monitors/Workspaces
|
||||
source = ~/.config/hypr/windowrule.conf
|
||||
|
||||
# Startup
|
||||
source = ~/.config/hypr/startup.conf
|
||||
|
||||
# Devices
|
||||
source = ~/.config/hypr/devices.conf
|
||||
|
||||
# Input
|
||||
input {
|
||||
kb_layout = de
|
||||
numlock_by_default = 1
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
}
|
||||
}
|
||||
|
||||
# General
|
||||
general {
|
||||
gaps_in = 2
|
||||
gaps_out = 2
|
||||
border_size = 2
|
||||
col.active_border = rgba(7dc4e4ee) rgba(7dc4e4ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# Decoration
|
||||
decoration {
|
||||
rounding = 0
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 2
|
||||
passes = 3
|
||||
#noise = 0
|
||||
new_optimizations = on
|
||||
special = false
|
||||
|
||||
blurls = rofi
|
||||
blurls = gtk-layer-shell
|
||||
}
|
||||
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# Animations
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
# Dwindle
|
||||
dwindle {
|
||||
pseudotile = yes
|
||||
preserve_split = yes
|
||||
}
|
||||
|
||||
# Master
|
||||
master {
|
||||
new_is_master = true
|
||||
}
|
||||
|
||||
# Gestures
|
||||
gestures {
|
||||
workspace_swipe = on
|
||||
}
|
||||
|
||||
# Misc
|
||||
misc {
|
||||
#mouse_move_enables_dpms = true
|
||||
key_press_enables_dpms = true
|
||||
}
|
||||
103
roles/hypr/files/keybinds.conf
Executable file
@@ -0,0 +1,103 @@
|
||||
# Keybindings
|
||||
$mainMod = SUPER
|
||||
|
||||
# General
|
||||
bind = $mainMod, P, pseudo,
|
||||
bind = $mainMod, DELETE, exit,
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, fullscreen,
|
||||
bind = $mainMod, S, togglesplit,
|
||||
bind = $mainMod, F4, exec, wlogout
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, N, exec, swaync-client -t -sw
|
||||
bind = $mainMod SHIFT, P, exec, hyprpicker -n -a -r
|
||||
bind = $mainMod, O, exec, ~/.config/hypr/scripts/lock.sh
|
||||
bind = $mainMod, B, exec, ~/.config/hypr/scripts/game_mode.sh
|
||||
bind = $mainMod, V, exec, pkill rofi || ~/.config/hypr/scripts/clipboard.sh c
|
||||
bind = $mainMod, TAB, exec, pkill rofi || ~/.config/hypr/scripts/app_launcher.sh w
|
||||
bind = $mainMod, COMMA, exec, pkill rofi || ~/.config/hypr/scripts/app_launcher.sh e
|
||||
bindr = $mainMod, SUPER_L, exec, pkill rofi || ~/.config/hypr/scripts/app_launcher.sh d
|
||||
bind = $mainMod SHIFT, S, exec, grimblast --freeze copy area
|
||||
bind = $mainMod CTRL, S, exec, grimblast --freeze copysave area ~/Pictures/Screenshots/"$(date --rfc-3339=seconds)".png
|
||||
|
||||
# Media keys
|
||||
bind = , XF86AudioNext, exec, playerctl next
|
||||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = , XF86AudioPlay, exec, playerctl play
|
||||
bind = , XF86AudioPause, exec, playerctl pause
|
||||
bind = , XF86AudioMute, exec, ~/.config/eww/scripts/audio.sh mutesink @DEFAULT_SINK@
|
||||
bind = , XF86AudioMicMute, exec, ~/.config/eww/scripts/audio.sh mutesource @DEFAULT_SOURCE@
|
||||
binde = , XF86AudioRaiseVolume, exec, ~/.config/eww/scripts/audio.sh vol up
|
||||
binde = , XF86AudioLowerVolume, exec, ~/.config/eww/scripts/audio.sh vol down
|
||||
binde = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
||||
binde = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
|
||||
|
||||
# Applications
|
||||
bind = $mainMod, T, exec, alacritty
|
||||
bind = $mainMod, E, exec, nemo
|
||||
bind = $mainMod, G, exec, ~/.config/hypr/scripts/app_launcher.sh c
|
||||
bind = CTRL SHIFT, ESCAPE, exec, gnome-system-monitor
|
||||
|
||||
# Move focus
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, H, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, L, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, K, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
bind = $mainMod, J, movefocus, d
|
||||
|
||||
# Scrachtpad
|
||||
bind = $mainMod CTRL, 2, togglespecialworkspace,
|
||||
bind = $mainMod CTRL, 1, movetoworkspace, special
|
||||
|
||||
# Move window
|
||||
bind = $mainMod SHIFT, left, movewindow, l
|
||||
bind = $mainMod SHIFT, H, movewindow, l
|
||||
bind = $mainMod SHIFT, right, movewindow, r
|
||||
bind = $mainMod SHIFT, L, movewindow, r
|
||||
bind = $mainMod SHIFT, up, movewindow, u
|
||||
bind = $mainMod SHIFT, K, movewindow, u
|
||||
bind = $mainMod SHIFT, down, movewindow, d
|
||||
bind = $mainMod SHIFT, J, movewindow, d
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
|
||||
# Resize windows
|
||||
binde = $mainMod CTRL, left, resizeactive, -20 0
|
||||
binde = $mainMod CTRL, h, resizeactive, -20 0
|
||||
binde = $mainMod CTRL, right, resizeactive, 20 0
|
||||
binde = $mainMod CTRL, l, resizeactive, 20 0
|
||||
binde = $mainMod CTRL, up, resizeactive, 0 -20
|
||||
binde = $mainMod CTRL, k, resizeactive, 0 -20
|
||||
binde = $mainMod CTRL, down, resizeactive, 0 20
|
||||
binde = $mainMod CTRL, j, resizeactive, 0 20
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Move active window to a workspace
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Switch workspaces
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Scroll through existing workspaces
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
7
roles/hypr/files/nvidia.conf
Executable file
@@ -0,0 +1,7 @@
|
||||
# Nvidia env
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = __GL_VRR_ALLOWED,1
|
||||
env = WLR_NO_HARDWARE_CURSORS,1
|
||||
env = WLR_DRM_NO_ATOMIC,1
|
||||
36
roles/hypr/files/scripts/app_launcher.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
rofi_conf="~/.config/rofi/main.rasi"
|
||||
|
||||
# Rofi action
|
||||
case $1 in
|
||||
d) mode="drun" ;;
|
||||
w) mode="window" ;;
|
||||
f) mode="filebrowser" ;;
|
||||
e) mode="emoji"
|
||||
action=(-a copy)
|
||||
;;
|
||||
c) mode="calc"
|
||||
action=(-calc-command "wl-copy {result}")
|
||||
children="\"message\", "
|
||||
;;
|
||||
h) echo -e "$0 [action]"
|
||||
echo "d : drun mode"
|
||||
echo "w : window mode"
|
||||
echo "f : filebrowser mode"
|
||||
exit 0 ;;
|
||||
*) mode="drun" ;;
|
||||
esac
|
||||
|
||||
# Get font
|
||||
font=`gsettings get org.gnome.desktop.interface font-name`
|
||||
fnt_override="configuration {font: \"${font//\'}\";}"
|
||||
|
||||
# Get icon theme
|
||||
icon_override=`gsettings get org.gnome.desktop.interface icon-theme | sed "s/'//g"`
|
||||
icon_override="configuration {icon-theme: \"${icon_override}\";}"
|
||||
|
||||
# Children
|
||||
children_ovr="mainbox {children: [\"inputbar\", $children \"listbox\"];}"
|
||||
|
||||
# Launch rofi
|
||||
rofi -show $mode ${action[0]} "${action[1]}" -theme-str "$children_ovr" -theme-str "$fnt_override" -theme-str "$icon_override" -config "$rofi_conf"
|
||||
53
roles/hypr/files/scripts/background.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
#set -e # Exit immediately if a command exits with a non-zero status. (deprecated) -> [CMD] || exit 1
|
||||
|
||||
if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then
|
||||
echo "Usage:
|
||||
$0 <dir containing images> [interval(seconds)]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## Check running
|
||||
running=$(ps -ef | grep "$0" | grep -v grep | wc -l)
|
||||
if [ ${running} -gt 2 ]; then
|
||||
echo "Script already running! Killing others (TODO)..."
|
||||
exit 1
|
||||
# CRASHES EVERYTHING \/ !!!!!!!!!!
|
||||
script_pids=$(ps aux | grep -E "$script_name" | grep -v "grep" | awk -v pid="$current_pid" '$2 != pid {print $2}')
|
||||
|
||||
# Loop through the PIDs and kill the processes
|
||||
for pid in $script_pids; do
|
||||
echo "Killing process $pid"
|
||||
kill "$pid"
|
||||
done
|
||||
fi
|
||||
|
||||
## Start swww
|
||||
swww init &> /dev/null
|
||||
|
||||
## Settings for swww
|
||||
export SWWW_TRANSITION_FPS=60
|
||||
export SWWW_TRANSITION_STEP=2
|
||||
INTERVAL=300
|
||||
if [ ! -z $2 ]; then
|
||||
INTERVAL=$2
|
||||
fi
|
||||
|
||||
## Main loop
|
||||
while true; do
|
||||
find "$1" \
|
||||
| while read -r img; do
|
||||
echo "$((RANDOM % 1000)):$img"
|
||||
done \
|
||||
| sort -n | cut -d':' -f2- \
|
||||
| while read -r img; do
|
||||
img=${img/\~/$HOME}
|
||||
if [ -d $img ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
swww img "$img" --transition-type wipe --resize=fit
|
||||
ln -sf "$img" ~/.config/background
|
||||
sleep $INTERVAL
|
||||
done
|
||||
done
|
||||
24
roles/hypr/files/scripts/clipboard.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
roconf="~/.config/rofi/clipboard.rasi"
|
||||
|
||||
# Read font
|
||||
font=`gsettings get org.gnome.desktop.interface font-name`
|
||||
fnt_override="configuration {font: \"${font//\'}\";}"
|
||||
|
||||
# Clipboard action
|
||||
case $1 in
|
||||
c) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Copy...\";}" -theme-str "$fnt_override" -config $roconf | cliphist decode | wl-copy
|
||||
;;
|
||||
d) cliphist list | rofi -dmenu -theme-str "entry { placeholder: \"Delete...\";}" -theme-str "$fnt_override" -config $roconf | cliphist delete
|
||||
;;
|
||||
w) if [ `echo -e "Yes\nNo" | rofi -dmenu -theme-str "entry { placeholder: \"Clear Clipboard History?\";}" -theme-str "$fnt_override" -config $roconf` == "Yes" ] ; then
|
||||
cliphist wipe
|
||||
fi
|
||||
;;
|
||||
*) echo -e "$0 [action]"
|
||||
echo "c : cliphist list and copy selected"
|
||||
echo "d : cliphist list and delete selected"
|
||||
echo "w : cliphist wipe database"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
5
roles/hypr/files/scripts/close_apps.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
HYPRCMDS=$(hyprctl -j clients | jq -j '.[] | "dispatch closewindow address:\(.address); "')
|
||||
|
||||
hyprctl --batch "$HYPRCMDS" >> /tmp/hypr/cexit.log 2>&1
|
||||
21
roles/hypr/files/scripts/idle.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
isplayingvideo(){
|
||||
if pactl list | grep -q RUNNING; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
if ! [ -z $1 ]; then
|
||||
isplayingvideo
|
||||
fi
|
||||
|
||||
timeout_lock=900
|
||||
timeout_DPMS=1080
|
||||
|
||||
swayidle -w \
|
||||
timeout ${timeout_lock} "$0 isplayinfvideo || ~/.config/hypr/scripts/lock.sh" \
|
||||
#timeout ${timeout_DPMS} 'hyprctl dispatch dpms off'
|
||||
#resume 'hyprctl dispatch dpms on' # Crashes all apps -> Hyprland config set misc/mouse_move_enables_dpms=true
|
||||
10
roles/hypr/files/scripts/lock.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
dnd=$(swaync-client -D)
|
||||
|
||||
swaync-client -dn
|
||||
swaylock -C ~/.config/swaylock/swaylock.conf
|
||||
|
||||
if [ "$dnd" == "false" ]; then
|
||||
swaync-client -df
|
||||
fi
|
||||
6
roles/hypr/files/scripts/logout.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
HYPRCMDS=$(hyprctl -j clients | jq -j '.[] | "dispatch closewindow address:\(.address); "')
|
||||
|
||||
hyprctl --batch "$HYPRCMDS" >> /tmp/hypr/cexit.log 2>&1
|
||||
hyprctl dispatch exit >> /tmp/hypr/cexit.log 2>&1
|
||||
13
roles/hypr/files/scripts/wait_for_tray.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
program_name="ags"
|
||||
|
||||
check_program_running() {
|
||||
pgrep -x "$program_name" > /dev/null
|
||||
}
|
||||
|
||||
while ! check_program_running; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
sleep 1
|
||||
23
roles/hypr/files/startup.conf
Executable file
@@ -0,0 +1,23 @@
|
||||
# First for systray
|
||||
exec-once = ags -c /home/keule/test/config.js
|
||||
|
||||
# Programms
|
||||
exec-once = armcord
|
||||
exec-once = nextcloud
|
||||
exec-once = youtube-music
|
||||
exec-once = element-desktop
|
||||
exec-once = nm-applet
|
||||
exec-once = blueman-applet
|
||||
exec-once = playerctld daemon
|
||||
exec-once = ~/.config/hypr/scripts/idle.sh
|
||||
exec-once = ~/.config/hypr/scripts/battery_check.sh
|
||||
|
||||
# Clipboard
|
||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
||||
|
||||
# Background
|
||||
exec-once = ~/.config/hypr/scripts/background.sh ~/Data/Pictures/Backgrounds/Desktop/
|
||||
|
||||
# Misc
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
34
roles/hypr/files/windowrule.conf
Executable file
@@ -0,0 +1,34 @@
|
||||
# Monitors
|
||||
$monitorOne = HDMI-A-1
|
||||
$monitorTwo = DP-2
|
||||
$monitorThree = HDMI-A-2
|
||||
|
||||
monitor = $monitorOne,1920x1080@144.001007,0x0,1
|
||||
monitor = $monitorTwo,2560x1440@143.912003,1920x0,1
|
||||
monitor = $monitorThree,1920x1080@60.000000,4480x0,1
|
||||
monitor = ,preferred,auto,1
|
||||
|
||||
|
||||
# Window Rules - (hyprctl -j clients | grep class)
|
||||
windowrule = workspace 2,^(YouTube Music)$
|
||||
windowrule = workspace 4,^(explorer.exe)$
|
||||
windowrule = workspace 4,^(lutris)$
|
||||
windowrule = workspace 5,^(discord)$
|
||||
windowrule = workspace 5,^(WebCord)$
|
||||
windowrule = workspace 5,^(Element)$
|
||||
windowrule = workspace 5,^(de.keule.client.ui.JavaFX)$
|
||||
|
||||
windowrule = float,^(lutris)$
|
||||
windowrule = size 965 545, ^(lutris)$
|
||||
windowrule = float,title:^.*culator.*$
|
||||
|
||||
|
||||
# Workspace
|
||||
workspace = 1, monitor:$monitorOne, default:true
|
||||
workspace = 2, monitor:$monitorOne
|
||||
|
||||
workspace = 3, monitor:$monitorTwo, default:true
|
||||
workspace = 4, monitor:$monitorTwo
|
||||
|
||||
workspace = 5, monitor:$monitorThree, default:true
|
||||
workspace = 6, monitor:$monitorThree
|
||||
18
roles/hypr/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: "[Hyprland] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- hyprland
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[Hyprland] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/hypr"
|
||||
state: directory
|
||||
|
||||
- name: "[Hyprland] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/hypr"
|
||||
@@ -0,0 +1,464 @@
|
||||
[%General]
|
||||
author=elkrien based on Arc Dark style
|
||||
comment=Catppuccin-Frappe-Rosewater
|
||||
spread_menuitems=true
|
||||
left_tabs=true
|
||||
mirror_doc_tabs=true
|
||||
scroll_width=8
|
||||
attach_active_tab=true
|
||||
composite=true
|
||||
menu_shadow_depth=7
|
||||
tooltip_shadow_depth=0
|
||||
splitter_width=7
|
||||
check_size=16
|
||||
slider_width=4
|
||||
slider_handle_width=18
|
||||
slider_handle_length=18
|
||||
textless_progressbar=false
|
||||
menubar_mouse_tracking=true
|
||||
slim_toolbars=false
|
||||
toolbutton_style=1
|
||||
x11drag=menubar_and_primary_toolbar
|
||||
double_click=false
|
||||
translucent_windows=false
|
||||
blurring=false
|
||||
popup_blurring=true
|
||||
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam,qmplay2
|
||||
group_toolbar_buttons=false
|
||||
vertical_spin_indicators=false
|
||||
fill_rubberband=false
|
||||
spread_progressbar=true
|
||||
merge_menubar_with_toolbar=true
|
||||
small_icon_size=16
|
||||
large_icon_size=32
|
||||
button_icon_size=16
|
||||
scroll_arrows=false
|
||||
iconless_pushbutton=true
|
||||
toolbar_icon_size=16
|
||||
combo_as_lineedit=true
|
||||
button_contents_shift=false
|
||||
groupbox_top_label=true
|
||||
inline_spin_indicators=true
|
||||
joined_inactive_tabs=false
|
||||
layout_spacing=2
|
||||
submenu_overlap=0
|
||||
tooltip_delay=-1
|
||||
animate_states=false
|
||||
transient_scrollbar=true
|
||||
alt_mnemonic=true
|
||||
combo_menu=true
|
||||
layout_margin=4
|
||||
no_window_pattern=false
|
||||
respect_DE=true
|
||||
scroll_min_extent=36
|
||||
scrollable_menu=false
|
||||
scrollbar_in_view=false
|
||||
spin_button_width=16
|
||||
submenu_delay=250
|
||||
tree_branch_line=true
|
||||
progressbar_thickness=8
|
||||
click_behavior=0
|
||||
contrast=1.00
|
||||
dialog_button_layout=0
|
||||
drag_from_buttons=false
|
||||
hide_combo_checkboxes=false
|
||||
intensity=1.00
|
||||
no_inactiveness=false
|
||||
reduce_menu_opacity=0
|
||||
reduce_window_opacity=10
|
||||
saturation=1.00
|
||||
shadowless_popup=false
|
||||
transient_groove=false
|
||||
|
||||
[GeneralColors]
|
||||
window.color=#303446
|
||||
base.color=#292C3C
|
||||
alt.base.color=#292C3C
|
||||
button.color=#414559
|
||||
light.color=#51576D
|
||||
mid.light.color=#51576D
|
||||
dark.color=#292C3C
|
||||
mid.color=#292C3C
|
||||
highlight.color=#F2D5CF
|
||||
inactive.highlight.color=#F2D5CF
|
||||
text.color=#C6D0F5
|
||||
window.text.color=#C6D0F5
|
||||
button.text.color=#C6D0F5
|
||||
disabled.text.color=#626880
|
||||
tooltip.text.color=#C6D0F5
|
||||
highlight.text.color=#292C3C
|
||||
link.color=#F2D5CF
|
||||
link.visited.color=#8CAAEE
|
||||
|
||||
[ItemView]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=itemview
|
||||
interior.element=itemview
|
||||
frame=true
|
||||
interior=true
|
||||
text.iconspacing=3
|
||||
text.toggle.color=#292C3C
|
||||
|
||||
[RadioButton]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=radio
|
||||
|
||||
[CheckBox]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=checkbox
|
||||
|
||||
[TreeExpander]
|
||||
indicator.element=tree
|
||||
indicator.size=8
|
||||
|
||||
[ToolTip]
|
||||
frame.top=4
|
||||
frame.right=4
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame=true
|
||||
|
||||
[PanelButtonCommand]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=button
|
||||
frame.element=button
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
|
||||
[PanelButtonTool]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[DockTitle]
|
||||
inherits=PanelButtonCommand
|
||||
interior=false
|
||||
frame=false
|
||||
text.margin.top=5
|
||||
text.margin.bottom=5
|
||||
text.margin.left=5
|
||||
text.margin.right=5
|
||||
indicator.size=0
|
||||
|
||||
[Dock]
|
||||
interior.element=toolbar
|
||||
frame.element=toolbar
|
||||
frame=true
|
||||
interior=true
|
||||
|
||||
[GroupBox]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=tabframe
|
||||
interior=true
|
||||
frame=false
|
||||
|
||||
[Focus]
|
||||
inherits=PanelButtonCommand
|
||||
frame=true
|
||||
frame.element=focus
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
frame.patternsize=20
|
||||
|
||||
[GenericFrame]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=common
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
|
||||
[Slider]
|
||||
inherits=PanelButtonCommand
|
||||
interior=true
|
||||
frame.element=slider
|
||||
interior.element=slider
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
focusFrame=true
|
||||
|
||||
[SliderCursor]
|
||||
inherits=PanelButtonCommand
|
||||
interior=true
|
||||
interior.element=slidercursor
|
||||
frame=false
|
||||
|
||||
[LineEdit]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=lineedit
|
||||
interior.element=lineedit
|
||||
|
||||
[IndicatorSpinBox]
|
||||
inherits=LineEdit
|
||||
frame.element=lineedit
|
||||
interior.element=lineedit
|
||||
frame.top=0
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
indicator.size=8
|
||||
|
||||
[DropDownButton]
|
||||
inherits=PanelButtonCommand
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=0
|
||||
frame.right=1
|
||||
indicator.size=8
|
||||
|
||||
[ToolboxTab]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=tabframe
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
|
||||
[Tab]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=tab
|
||||
frame.element=tab
|
||||
frame.top=2
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
indicator.size=10
|
||||
text.normal.color=#626880
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#C6D0F5
|
||||
text.toggle.color=#C6D0F5
|
||||
focusFrame=true
|
||||
|
||||
[TabBarFrame]
|
||||
inherits=GenericFrame
|
||||
frame=true
|
||||
frame.element=tabBarFrame
|
||||
interior=false
|
||||
frame.top=4
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame.right=4
|
||||
|
||||
[TabFrame]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=tabframe
|
||||
interior.element=tabframe
|
||||
|
||||
[Dialog]
|
||||
inherits=TabBarFrame
|
||||
frame.element=tabframe
|
||||
interior=false
|
||||
frame=false
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
|
||||
[HeaderSection]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=header
|
||||
frame.element=header
|
||||
frame.top=0
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
frame.expansion=0
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#F2D5CF
|
||||
text.press.color=#C6D0F5
|
||||
text.toggle.color=#C6D0F5
|
||||
indicator.element=harrow
|
||||
|
||||
[SizeGrip]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior=false
|
||||
indicator.element=resize-grip
|
||||
indicator.size=0
|
||||
|
||||
[Toolbar]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=menubar
|
||||
frame.element=menubar
|
||||
frame=true
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame.right=4
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#F2D5CF
|
||||
text.toggle.color=#F2D5CF
|
||||
text.bold=false
|
||||
|
||||
[MenuBar]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=menubar
|
||||
interior.element=menubar
|
||||
frame.bottom=0
|
||||
text.normal.color=#C6D0F5
|
||||
frame.expansion=0
|
||||
text.bold=false
|
||||
|
||||
[ToolbarButton]
|
||||
frame.element=tbutton
|
||||
interior.element=tbutton
|
||||
indicator.element=arrow
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
text.bold=false
|
||||
|
||||
[Scrollbar]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.size=0
|
||||
interior=false
|
||||
frame=false
|
||||
|
||||
[ScrollbarGroove]
|
||||
inherits=PanelButtonCommand
|
||||
interior=false
|
||||
frame=false
|
||||
|
||||
[ScrollbarSlider]
|
||||
inherits=PanelButtonCommand
|
||||
interior=false
|
||||
frame.element=scrollbarslider
|
||||
frame.top=4
|
||||
frame.bottom=4
|
||||
frame.left=4
|
||||
frame.right=4
|
||||
|
||||
[ProgressbarContents]
|
||||
inherits=PanelButtonCommand
|
||||
frame=true
|
||||
frame.element=progress-pattern
|
||||
interior.element=progress-pattern
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
|
||||
[Progressbar]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=progress
|
||||
interior.element=progress
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
text.margin=0
|
||||
text.normal.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
text.bold=false
|
||||
frame.expansion=18
|
||||
|
||||
[RadioButton]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[Menu]
|
||||
frame.element=menu
|
||||
interior.element=menu
|
||||
inherits=PanelButtonCommand
|
||||
text.press.color=#292C3C
|
||||
text.toggle.color=#292C3C
|
||||
text.bold=false
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
|
||||
[MenuItem]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=menuitem
|
||||
indicator.size=8
|
||||
text.focus.color=#C6D0F5
|
||||
text.press.color=#C6D0F5
|
||||
|
||||
[MenuBarItem]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=menubaritem
|
||||
frame=false
|
||||
text.margin.top=3
|
||||
text.margin.bottom=3
|
||||
text.margin.left=5
|
||||
text.margin.right=5
|
||||
|
||||
[StatusBar]
|
||||
inherits=Toolbar
|
||||
frame.element=toolbar
|
||||
font.bold=true
|
||||
text.normal.color=#C6D0F5
|
||||
frame=true
|
||||
frame.top=0
|
||||
frame.bottom=0
|
||||
|
||||
[TitleBar]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior=false
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
|
||||
[ComboBox]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.size=8
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
text.margin.top=1
|
||||
text.margin.bottom=1
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
text.toggle.color=#C6D0F5
|
||||
|
||||
[ToolboxTab]
|
||||
inherits=PanelButtonCommand
|
||||
text.normal.color=#C6D0F5
|
||||
text.press.color=#C6D0F5
|
||||
text.focus.color=#C6D0F5
|
||||
|
||||
[Hacks]
|
||||
transparent_dolphin_view=false
|
||||
blur_konsole=true
|
||||
transparent_ktitle_label=true
|
||||
transparent_menutitle=true
|
||||
respect_darkness=true
|
||||
kcapacitybar_as_progressbar=true
|
||||
force_size_grip=false
|
||||
iconless_pushbutton=true
|
||||
iconless_menu=false
|
||||
disabled_icon_opacity=100
|
||||
lxqtmainmenu_iconsize=0
|
||||
normal_default_pushbutton=true
|
||||
single_top_toolbar=false
|
||||
tint_on_mouseover=0
|
||||
transparent_pcmanfm_sidepane=true
|
||||
transparent_pcmanfm_view=false
|
||||
blur_translucent=true
|
||||
centered_forms=false
|
||||
kinetic_scrolling=false
|
||||
middle_click_scroll=false
|
||||
no_selection_tint=false
|
||||
noninteger_translucency=false
|
||||
style_vertical_toolbars=false
|
||||
blur_only_active_window=false
|
||||
|
||||
[Window]
|
||||
interior=true
|
||||
interior.element=window
|
||||
frame.top=0
|
||||
frame.bottom=0
|
||||
frame.left=0
|
||||
frame.right=0
|
||||
|
After Width: | Height: | Size: 146 KiB |
21
roles/kvantum/files/Catppuccin-Frappe-Rosewater/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Catppuccin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
2
roles/kvantum/files/kvantum.kvconfig
Normal file
@@ -0,0 +1,2 @@
|
||||
[General]
|
||||
theme=Catppuccin-Macchiato-Rosewater
|
||||
18
roles/kvantum/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: "[Kvantum] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- kvantum
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[Kvantum] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/kvantum"
|
||||
state: directory
|
||||
|
||||
- name: "[Kvantum] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/kvantum"
|
||||
23
roles/minegrub/files/minegrub/LICENSE
Normal file
@@ -0,0 +1,23 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Lxtharia
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
https://github.com/Lxtharia/minegrub-theme
|
||||
BIN
roles/minegrub/files/minegrub/Minecraft24.pf2
Normal file
BIN
roles/minegrub/files/minegrub/Minecraft30.pf2
Normal file
BIN
roles/minegrub/files/minegrub/Monocraft22.pf2
Normal file
BIN
roles/minegrub/files/minegrub/assets/MinecraftRegular-Bmg3.otf
Normal file
BIN
roles/minegrub/files/minegrub/assets/Monocraft.otf
Normal file
BIN
roles/minegrub/files/minegrub/assets/logo_clear.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
50
roles/minegrub/files/minegrub/assets/splashes.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
I use Arch BTW!
|
||||
Now with 100% more Linux!
|
||||
GNU's not UNIX!
|
||||
Praise Tux!
|
||||
Wine is not an Emulator!
|
||||
I am Root!
|
||||
Still stuck in Vim!
|
||||
Won't sell your data!
|
||||
Now with Rust!
|
||||
Full of Distros!
|
||||
Do redistribute!
|
||||
May contain penguins!
|
||||
Support FOSS devs!
|
||||
Bailing out!
|
||||
Everything is a file!
|
||||
May contain systemd...
|
||||
Open source!
|
||||
Made in Finland!
|
||||
It's not a bug, it's a feature!
|
||||
It's GNU/Linux!
|
||||
Sudo rm -rf!
|
||||
Yes, do as I say!
|
||||
90% bug free!
|
||||
Not water proof!
|
||||
Used by billions!
|
||||
12345 is a bad password!
|
||||
Turing complete!
|
||||
Woah.
|
||||
I have a suggestion.
|
||||
pls fix
|
||||
beep beep
|
||||
Boop!
|
||||
Splash!
|
||||
[Insert splash text here]
|
||||
Made by "real" people!
|
||||
Viruses have no power here!
|
||||
No place like ~
|
||||
Used in space!
|
||||
No reboots required!
|
||||
Case sensitive!
|
||||
.exe won't work here!
|
||||
No ads!
|
||||
May contain spaghetti...
|
||||
No registry needed!
|
||||
Forward slashes only!
|
||||
No DLLs needed!
|
||||
127.0.0.1 > localhost :)
|
||||
No caffeine!
|
||||
Zero calories!
|
||||
Do not eat!
|
||||
BIN
roles/minegrub/files/minegrub/background.png
Normal file
|
After Width: | Height: | Size: 822 KiB |
BIN
roles/minegrub/files/minegrub/dirt.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
roles/minegrub/files/minegrub/item_c.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
roles/minegrub/files/minegrub/item_e.png
Normal file
|
After Width: | Height: | Size: 549 B |
BIN
roles/minegrub/files/minegrub/item_n.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
roles/minegrub/files/minegrub/item_ne.png
Normal file
|
After Width: | Height: | Size: 529 B |
BIN
roles/minegrub/files/minegrub/item_nw.png
Normal file
|
After Width: | Height: | Size: 515 B |
BIN
roles/minegrub/files/minegrub/item_s.png
Normal file
|
After Width: | Height: | Size: 1012 B |
BIN
roles/minegrub/files/minegrub/item_se.png
Normal file
|
After Width: | Height: | Size: 515 B |
BIN
roles/minegrub/files/minegrub/item_sw.png
Normal file
|
After Width: | Height: | Size: 508 B |
BIN
roles/minegrub/files/minegrub/item_w.png
Normal file
|
After Width: | Height: | Size: 540 B |
BIN
roles/minegrub/files/minegrub/logo.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
roles/minegrub/files/minegrub/selected_item_c.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
roles/minegrub/files/minegrub/selected_item_e.png
Normal file
|
After Width: | Height: | Size: 552 B |
BIN
roles/minegrub/files/minegrub/selected_item_n.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
roles/minegrub/files/minegrub/selected_item_ne.png
Normal file
|
After Width: | Height: | Size: 529 B |
BIN
roles/minegrub/files/minegrub/selected_item_nw.png
Normal file
|
After Width: | Height: | Size: 513 B |
BIN
roles/minegrub/files/minegrub/selected_item_s.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
roles/minegrub/files/minegrub/selected_item_se.png
Normal file
|
After Width: | Height: | Size: 515 B |
BIN
roles/minegrub/files/minegrub/selected_item_sw.png
Normal file
|
After Width: | Height: | Size: 508 B |
BIN
roles/minegrub/files/minegrub/selected_item_w.png
Normal file
|
After Width: | Height: | Size: 535 B |
BIN
roles/minegrub/files/minegrub/static_bar.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
roles/minegrub/files/minegrub/term_e.png
Normal file
|
After Width: | Height: | Size: 547 B |
BIN
roles/minegrub/files/minegrub/term_n.png
Normal file
|
After Width: | Height: | Size: 553 B |
BIN
roles/minegrub/files/minegrub/term_ne.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
roles/minegrub/files/minegrub/term_nw.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
roles/minegrub/files/minegrub/term_s.png
Normal file
|
After Width: | Height: | Size: 553 B |
BIN
roles/minegrub/files/minegrub/term_se.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
roles/minegrub/files/minegrub/term_sw.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
roles/minegrub/files/minegrub/term_w.png
Normal file
|
After Width: | Height: | Size: 546 B |
140
roles/minegrub/files/minegrub/theme.txt
Normal file
@@ -0,0 +1,140 @@
|
||||
# Global
|
||||
|
||||
title-text: ""
|
||||
desktop-image: "background.png"
|
||||
|
||||
# Terminal for Console and Options
|
||||
terminal-border: "20"
|
||||
terminal-left: "10%"
|
||||
terminal-top: "10%+23"
|
||||
terminal-width: "80%"
|
||||
terminal-height: "80%"
|
||||
terminal-box: "term_*.png"
|
||||
terminal-font: "Monocraft Regular 22"
|
||||
|
||||
# Text White
|
||||
+ boot_menu {
|
||||
# as we don't have any pixmaps here, it gets aligned strangely
|
||||
# top pixmap is 17px in height
|
||||
# left pixmap is 6px in width
|
||||
# the text needs to be 3 pixels above and 3 pixels to the left
|
||||
left = 50%-297
|
||||
top = 40%+14
|
||||
width = 600
|
||||
height = 500
|
||||
|
||||
item_font = "Minecraft Regular 30"
|
||||
item_color = "#ffffff"
|
||||
selected_item_color = "#ffffa0"
|
||||
item_height = 34
|
||||
item_padding = 0
|
||||
item_spacing = 38
|
||||
scrollbar = false
|
||||
}
|
||||
|
||||
|
||||
+ boot_menu {
|
||||
left = 50%-300
|
||||
top = 40%
|
||||
width = 600
|
||||
height = 500
|
||||
|
||||
item_font = "Minecraft Regular 30"
|
||||
item_color = "#383838"
|
||||
selected_item_color = "#3f3f28"
|
||||
item_height = 34
|
||||
item_padding = 0
|
||||
item_spacing = 38
|
||||
item_pixmap_style = "item_*.png"
|
||||
selected_item_pixmap_style = "selected_item_*.png"
|
||||
scrollbar = false
|
||||
}
|
||||
|
||||
|
||||
|
||||
+ image {
|
||||
# width of the static bottom bar image is 744
|
||||
left = 50%-372
|
||||
|
||||
# n is amount of boot options (each element is (42 height + 30 spacing) = 72px in height)
|
||||
# top = 40%+( 72 * N + 26 )
|
||||
#
|
||||
### +170 (for 2 boot options)
|
||||
### +242 (for 3 boot options)
|
||||
### +314 (for 4 boot options)
|
||||
### +386 (for 5 boot options)
|
||||
### +458 (for 6 boot options)
|
||||
### +530 (for 7 boot options)
|
||||
###
|
||||
############### CHANGE VALUE HERE ################
|
||||
|
||||
top = 40%+314
|
||||
|
||||
### Don't leave spaces in between the value
|
||||
##################################################
|
||||
|
||||
file = "static_bar.png"
|
||||
}
|
||||
|
||||
+ image {
|
||||
# width of the logo image is 1200, but the center of the logo is at x=400
|
||||
left = 50%-400
|
||||
top = 0
|
||||
file = "logo.png"
|
||||
}
|
||||
|
||||
# TEXT
|
||||
+ label {
|
||||
left = 6
|
||||
top = 100%-31
|
||||
height = 54
|
||||
width = 200
|
||||
|
||||
text = "Minegrub 2.0.0"
|
||||
font = "Minecraft Regular 30"
|
||||
color = "white"
|
||||
}
|
||||
|
||||
# SHADOW
|
||||
+ label {
|
||||
left = 9
|
||||
top = 100%-28
|
||||
height = 54
|
||||
width = 200
|
||||
|
||||
text = "Minegrub 2.0.0"
|
||||
font = "Minecraft Regular 30"
|
||||
color = "#3f3f3f"
|
||||
}
|
||||
|
||||
# TEXT
|
||||
+ label {
|
||||
id = "__timeout__"
|
||||
|
||||
left = 50%
|
||||
top = 100%-31
|
||||
height = 24
|
||||
width = 50%-6
|
||||
|
||||
text = "Joining world in %d seconds"
|
||||
align = "right"
|
||||
font = "Minecraft Regular 30"
|
||||
color = "white"
|
||||
}
|
||||
|
||||
# SHADOW
|
||||
+ label {
|
||||
id = "__timeout__"
|
||||
|
||||
left = 50%+3
|
||||
top = 100%-28
|
||||
height = 24
|
||||
width = 50%-6
|
||||
|
||||
text = "Joining world in %d seconds"
|
||||
align = "right"
|
||||
font = "Minecraft Regular 30"
|
||||
color = "#3f3f3f"
|
||||
}
|
||||
|
||||
|
||||
17
roles/minegrub/tasks/main.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
- name: "[Minegrub] Install"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "/boot/grub/themes/"
|
||||
force: false
|
||||
become: true
|
||||
|
||||
- name: "[Minegrub] Configure"
|
||||
shell: sed -i '/^\(#\)\?GRUB_THEME/ s~.*~GRUB_THEME=/boot/grub/themes/minegrub/theme.txt~' /etc/default/grub
|
||||
ignore_errors: true
|
||||
become: true
|
||||
|
||||
- name: "[Minegrub] Updating grub"
|
||||
shell: grub-mkconfig -o /boot/grub/grub.cfg
|
||||
ignore_errors: true
|
||||
become: true
|
||||
509
roles/nvim/files/init.lua
Executable file
@@ -0,0 +1,509 @@
|
||||
--- Set Leader Key (Needs to be set before the plugins are loaded/required)
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
--- Plugin Manager
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not 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)
|
||||
|
||||
-- Add Plugins
|
||||
require("lazy").setup({
|
||||
-- Stats
|
||||
{ 'wakatime/vim-wakatime', lazy = false },
|
||||
|
||||
-- Theme
|
||||
{
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin.vim",
|
||||
priority = 1000,
|
||||
config = function()
|
||||
vim.g.catppuccin_flavor = "macchiato"
|
||||
vim.cmd [[colorscheme catppuccin]]
|
||||
end,
|
||||
},
|
||||
|
||||
-- Syntax highlighting support
|
||||
"elkowar/yuck.vim",
|
||||
"fladson/vim-kitty",
|
||||
-- Use "gc" to comment visual regions/lines
|
||||
{ "numToStr/Comment.nvim", opts = {} },
|
||||
|
||||
-- Detect tabstop and shiftwidth automatically
|
||||
-- "tpope/vim-sleuth",
|
||||
|
||||
-- Add indentation guides even on blank lines ???
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- Status line
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
opts = {
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
theme = "palenight",
|
||||
component_separators = "|",
|
||||
section_separators = "",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- LSP (Configuration under "lspconfig")
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
-- Automatically install LSPs to stdpath for neovim
|
||||
{ "williamboman/mason.nvim", config = true },
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
|
||||
-- Useful status updates for LSP
|
||||
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
|
||||
{ "j-hui/fidget.nvim", tag = "legacy", opts = {} },
|
||||
|
||||
-- Additional lua configuration, makes nvim stuff amazing!
|
||||
"folke/neodev.nvim",
|
||||
},
|
||||
},
|
||||
|
||||
-- Autocomplete
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
-- Snippet Engine & its associated nvim-cmp source
|
||||
'L3MON4D3/LuaSnip',
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
|
||||
-- Adds LSP completion capabilities
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
|
||||
-- Adds a number of user-friendly snippets
|
||||
'rafamadriz/friendly-snippets',
|
||||
},
|
||||
},
|
||||
|
||||
-- Show available command
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
init = function()
|
||||
vim.o.timeout = true
|
||||
vim.o.timeoutlen = 300
|
||||
end,
|
||||
opts = {}
|
||||
},
|
||||
|
||||
-- Fuzzy Finder (files, lsp, etc)
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
branch = "0.1.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
{
|
||||
'nvim-telescope/telescope-fzf-native.nvim',
|
||||
-- NOTE: If you are having trouble with this installation,
|
||||
-- refer to the README for telescope-fzf-native for more instructions.
|
||||
build = 'make',
|
||||
cond = function()
|
||||
return vim.fn.executable 'make' == 1
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Highlight, edit, and navigate code
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
dependencies = {
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
},
|
||||
build = ':TSUpdate',
|
||||
},
|
||||
|
||||
-- Git
|
||||
"tpope/vim-fugitive",
|
||||
--"tpope/vim-rhubarb",
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
opts = {
|
||||
-- See `:help gitsigns.txt`
|
||||
signs = {
|
||||
add = { text = "+" },
|
||||
change = { text = "~" },
|
||||
delete = { text = "_" },
|
||||
topdelete = { text = "‾" },
|
||||
changedelete = { text = "~" },
|
||||
},
|
||||
on_attach = function(bufnr)
|
||||
vim.keymap.set("n", "<leader>hp", require("gitsigns").preview_hunk, { buffer = bufnr, desc = "Preview git hunk" })
|
||||
|
||||
-- don't override the built-in and fugitive keymaps
|
||||
local gs = package.loaded.gitsigns
|
||||
vim.keymap.set({ "n", "v" }, "]c", function()
|
||||
if vim.wo.diff then return "]c" end
|
||||
vim.schedule(function() gs.next_hunk() end)
|
||||
return "<Ignore>"
|
||||
end, { expr = true, buffer = bufnr, desc = "Jump to next hunk" })
|
||||
vim.keymap.set({ "n", "v" }, "[c", function()
|
||||
if vim.wo.diff then return "[c" end
|
||||
vim.schedule(function() gs.prev_hunk() end)
|
||||
return "<Ignore>"
|
||||
end, { expr = true, buffer = bufnr, desc = "Jump to previous hunk" })
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
||||
})
|
||||
|
||||
-- Tab
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.expandtab = true
|
||||
|
||||
--- Show line numbers
|
||||
vim.opt.number = true
|
||||
|
||||
--- Relative line numbers
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
--- Go to next/previous line
|
||||
vim.opt.whichwrap = "<,>,[,]"
|
||||
|
||||
--- Enable mouse
|
||||
vim.opt.mouse = "a"
|
||||
|
||||
--- Sync clipboard with OS
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
|
||||
--- Enable break indent
|
||||
vim.opt.breakindent = true
|
||||
|
||||
--- Save undo history
|
||||
vim.opt.undofile = true
|
||||
|
||||
--- Case-insensetive search
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
||||
--- Keep signcolum
|
||||
vim.wo.signcolumn = "yes"
|
||||
|
||||
--- Set completeopt to have a better completion experience
|
||||
vim.opt.completeopt = "menuone,noselect"
|
||||
|
||||
--- [[ Basic Keymaps ]]
|
||||
-- Center view when jumping have the view
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
|
||||
-- Center view when search
|
||||
vim.keymap.set("n", "n", "nzz")
|
||||
vim.keymap.set("n", "N", "Nzz")
|
||||
|
||||
-- Create file or directory
|
||||
vim.keymap.set('n', '<Leader>cf', [[:e <C-R>=expand("%:h") .. '/'<CR>]],
|
||||
{ desc = "[f] Create file", noremap = true })
|
||||
vim.keymap.set('n', '<Leader>cd', [[:!mkdir <C-R>=expand("%:p:h") .. '/'<CR>]],
|
||||
{ desc = "[d] Create directory", noremap = true })
|
||||
|
||||
-- Open explorer
|
||||
vim.keymap.set("n", "<leader>oe", ":Ex<CR>", { desc = "[e] Open the explorer" })
|
||||
|
||||
-- Keymaps for better default experience
|
||||
vim.keymap.set({ "n", "v" }, "<Space>", "<Nop>", { silent = true })
|
||||
|
||||
-- Remap for dealing with word wrap
|
||||
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
||||
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
||||
|
||||
-- Change Tab/Window Focus
|
||||
vim.keymap.set("n", "<C-h>", "<C-W>h")
|
||||
vim.keymap.set("n", "<C-j>", "<C-W>j")
|
||||
vim.keymap.set("n", "<C-k>", "<C-W>k")
|
||||
vim.keymap.set("n", "<C-l>", "<C-W>l")
|
||||
|
||||
--- [[ Highlight on yank ]]
|
||||
-- See `:help vim.highlight.on_yank()`
|
||||
local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true })
|
||||
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
group = highlight_group,
|
||||
pattern = "*",
|
||||
})
|
||||
|
||||
--- [[ Configure Telescope ]]
|
||||
-- See `:help telescope` and `:help telescope.setup()`
|
||||
require("telescope").setup {
|
||||
defaults = {
|
||||
mappings = {
|
||||
i = {
|
||||
["<C-u>"] = false,
|
||||
["<C-d>"] = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Enable telescope fzf native, if installed
|
||||
pcall(require("telescope").load_extension, "fzf")
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
vim.keymap.set("n", "<leader>?", require("telescope.builtin").oldfiles, { desc = "[?] Find recently opened files" })
|
||||
vim.keymap.set("n", "<leader><space>", require("telescope.builtin").buffers, { desc = "[ ] Find existing buffers" })
|
||||
vim.keymap.set("n", "<leader>/", function()
|
||||
-- You can pass additional configuration to telescope to change theme, layout, etc.
|
||||
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
})
|
||||
end, { desc = "[/] Fuzzily search in current buffer" })
|
||||
|
||||
vim.keymap.set("n", "<leader>gf", require("telescope.builtin").git_files, { desc = "Search [G]it [F]iles" })
|
||||
vim.keymap.set("n", "<leader>sf", require("telescope.builtin").find_files, { desc = "[S]earch [F]iles" })
|
||||
vim.keymap.set("n", "<leader>sh", require("telescope.builtin").help_tags, { desc = "[S]earch [H]elp" })
|
||||
vim.keymap.set("n", "<leader>sw", require("telescope.builtin").grep_string, { desc = "[S]earch current [W]ord" })
|
||||
vim.keymap.set("n", "<leader>sg", require("telescope.builtin").live_grep, { desc = "[S]earch by [G]rep" })
|
||||
vim.keymap.set("n", "<leader>sd", require("telescope.builtin").diagnostics, { desc = "[S]earch [D]iagnostics" })
|
||||
vim.keymap.set("n", "<leader>sr", require("telescope.builtin").resume, { desc = "[S]earch [R]esume" })
|
||||
|
||||
--- [[ Configure Treesitter ]]
|
||||
-- See `:help nvim-treesitter`
|
||||
-- Defer Treesitter setup after first render to improve startup time of "nvim {filename}"
|
||||
vim.defer_fn(function()
|
||||
require("nvim-treesitter.configs").setup {
|
||||
-- Add languages to be installed here that you want installed for treesitter
|
||||
ensure_installed = { "c", "cpp", "go", "lua", "python", "rust", "tsx", "javascript", "typescript", "vimdoc", "vim" },
|
||||
|
||||
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
|
||||
auto_install = false,
|
||||
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "<c-space>",
|
||||
node_incremental = "<c-space>",
|
||||
scope_incremental = "<c-s>",
|
||||
node_decremental = "<M-space>",
|
||||
},
|
||||
},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
["aa"] = "@parameter.outer",
|
||||
["ia"] = "@parameter.inner",
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
},
|
||||
},
|
||||
move = {
|
||||
enable = true,
|
||||
set_jumps = true, -- whether to set jumps in the jumplist
|
||||
goto_next_start = {
|
||||
["]m"] = "@function.outer",
|
||||
["]]"] = "@class.outer",
|
||||
},
|
||||
goto_next_end = {
|
||||
["]M"] = "@function.outer",
|
||||
["]["] = "@class.outer",
|
||||
},
|
||||
goto_previous_start = {
|
||||
["[m"] = "@function.outer",
|
||||
["[["] = "@class.outer",
|
||||
},
|
||||
goto_previous_end = {
|
||||
["[M"] = "@function.outer",
|
||||
["[]"] = "@class.outer",
|
||||
},
|
||||
},
|
||||
swap = {
|
||||
enable = true,
|
||||
swap_next = {
|
||||
["<leader>a"] = "@parameter.inner",
|
||||
},
|
||||
swap_previous = {
|
||||
["<leader>A"] = "@parameter.inner",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
end, 0)
|
||||
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous diagnostic message" })
|
||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next diagnostic message" })
|
||||
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Open floating diagnostic message" })
|
||||
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostics list" })
|
||||
|
||||
--- [[ Configure LSP ]]
|
||||
-- This function gets run when an LSP connects to a particular buffer.
|
||||
local on_attach = function(_, bufnr)
|
||||
-- Sets the mode, buffer and description for us each time.
|
||||
local nmap = function(keys, func, desc)
|
||||
if desc then
|
||||
desc = "LSP: " .. desc
|
||||
end
|
||||
|
||||
vim.keymap.set("n", keys, func, { buffer = bufnr, desc = desc })
|
||||
end
|
||||
|
||||
nmap("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
|
||||
nmap("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction")
|
||||
|
||||
nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition")
|
||||
nmap("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
|
||||
nmap("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
|
||||
nmap("<leader>D", vim.lsp.buf.type_definition, "Type [D]efinition")
|
||||
nmap("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
|
||||
nmap("<leader>ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols")
|
||||
|
||||
-- See `:help K` for why this keymap
|
||||
nmap("K", vim.lsp.buf.hover, "Hover Documentation")
|
||||
nmap("<C-k>", vim.lsp.buf.signature_help, "Signature Documentation")
|
||||
|
||||
-- Lesser used LSP functionality
|
||||
nmap("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
|
||||
nmap("<leader>wa", vim.lsp.buf.add_workspace_folder, "[W]orkspace [A]dd Folder")
|
||||
nmap("<leader>wr", vim.lsp.buf.remove_workspace_folder, "[W]orkspace [R]emove Folder")
|
||||
nmap("<leader>wl", function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, "[W]orkspace [L]ist Folders")
|
||||
|
||||
-- Create a command `:Format` local to the LSP buffer
|
||||
vim.api.nvim_buf_create_user_command(bufnr, "Format", function(_)
|
||||
vim.lsp.buf.format()
|
||||
end, { desc = "Format current buffer with LSP" })
|
||||
|
||||
-- Auto format on save
|
||||
vim.cmd [[autocmd BufWritePre <buffer> lua vim.lsp.buf.format()]]
|
||||
-- or vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]]
|
||||
end
|
||||
|
||||
-- document existing key chains
|
||||
require("which-key").register({
|
||||
["<leader>c"] = { name = "[C]ode", _ = "which_key_ignore" },
|
||||
["<leader>d"] = { name = "[D]ocument", _ = "which_key_ignore" },
|
||||
["<leader>g"] = { name = "[G]it", _ = "which_key_ignore" },
|
||||
["<leader>h"] = { name = "More git", _ = "which_key_ignore" },
|
||||
["<leader>r"] = { name = "[R]ename", _ = "which_key_ignore" },
|
||||
["<leader>s"] = { name = "[S]earch", _ = "which_key_ignore" },
|
||||
["<leader>w"] = { name = "[W]orkspace", _ = "which_key_ignore" },
|
||||
})
|
||||
|
||||
-- Enable the following language servers
|
||||
-- If you want to override the default filetypes that your language server will attach to you can
|
||||
-- define the property "filetypes" to the map in question.
|
||||
local servers = {
|
||||
rust_analyzer = {},
|
||||
lemminx = {},
|
||||
yamlls = {},
|
||||
bashls = {},
|
||||
jsonls = {},
|
||||
clangd = {},
|
||||
cssls = {},
|
||||
jdtls = {},
|
||||
html = {},
|
||||
lua_ls = {
|
||||
Lua = {
|
||||
workspace = { checkThirdParty = false },
|
||||
telemetry = { enable = false },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Setup neovim lua configuration
|
||||
require("neodev").setup()
|
||||
|
||||
-- nvim-cmp supports additional completion capabilities, so broadcast that to servers
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities)
|
||||
|
||||
-- Ensure the servers above are installed
|
||||
local mason_lspconfig = require "mason-lspconfig"
|
||||
|
||||
mason_lspconfig.setup {
|
||||
ensure_installed = vim.tbl_keys(servers),
|
||||
}
|
||||
|
||||
mason_lspconfig.setup_handlers {
|
||||
function(server_name)
|
||||
require("lspconfig")[server_name].setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
settings = servers[server_name],
|
||||
filetypes = (servers[server_name] or {}).filetypes,
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
--- [[ Configure nvim-cmp ]]
|
||||
-- See `:help cmp`
|
||||
local cmp = require "cmp"
|
||||
local luasnip = require "luasnip"
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
luasnip.config.setup {}
|
||||
|
||||
cmp.setup {
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert {
|
||||
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete {},
|
||||
["<CR>"] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
},
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_locally_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.locally_jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
},
|
||||
}
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
18
roles/nvim/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: "[Nvim] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- neovim
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[Nvim] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/nvim"
|
||||
state: directory
|
||||
|
||||
- name: "[Nvim] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/nvim"
|
||||
139
roles/sddm/files/sddm.conf.d/default.conf
Executable file
@@ -0,0 +1,139 @@
|
||||
[Autologin]
|
||||
# Whether sddm should automatically log back into sessions when they exit
|
||||
Relogin=false
|
||||
|
||||
# Name of session file for autologin session (if empty try last logged in)
|
||||
Session=
|
||||
|
||||
# Username for autologin session
|
||||
User=
|
||||
|
||||
|
||||
[General]
|
||||
# Which display server should be used.
|
||||
# Valid values are: x11, x11-user, wayland. Wayland support is experimental
|
||||
DisplayServer=x11
|
||||
|
||||
# Comma-separated list of environment variables to be set
|
||||
GreeterEnvironment=
|
||||
|
||||
# Halt command
|
||||
HaltCommand=/usr/bin/systemctl poweroff
|
||||
|
||||
# Input method module
|
||||
InputMethod=
|
||||
|
||||
# Comma-separated list of Linux namespaces for user session to enter
|
||||
Namespaces=
|
||||
|
||||
# Initial NumLock state. Can be on, off or none.
|
||||
# If property is set to none, numlock won't be changed
|
||||
# NOTE: Currently ignored if autologin is enabled.
|
||||
Numlock=on
|
||||
|
||||
# Reboot command
|
||||
RebootCommand=/usr/bin/systemctl reboot
|
||||
|
||||
|
||||
[Theme]
|
||||
# Current theme name
|
||||
Current=catppuccin-macchiato
|
||||
|
||||
# Cursor size used in the greeter
|
||||
CursorSize=24
|
||||
|
||||
# Cursor theme used in the greeter
|
||||
CursorTheme=Breeze
|
||||
|
||||
# Number of users to use as threshold
|
||||
# above which avatars are disabled
|
||||
# unless explicitly enabled with EnableAvatars
|
||||
DisableAvatarsThreshold=7
|
||||
|
||||
# Enable display of custom user avatars
|
||||
EnableAvatars=true
|
||||
|
||||
# Global directory for user avatars
|
||||
# The files should be named <username>.face.icon
|
||||
FacesDir=/usr/share/sddm/faces
|
||||
|
||||
# Font used in the greeter
|
||||
Font=CaskaydiaCove Nerd Font 12
|
||||
|
||||
# Theme directory path
|
||||
ThemeDir=/usr/share/sddm/themes
|
||||
|
||||
|
||||
[Users]
|
||||
# Default $PATH for logged in users
|
||||
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin
|
||||
|
||||
# Comma-separated list of shells.
|
||||
# Users with these shells as their default won't be listed
|
||||
HideShells=
|
||||
|
||||
# Comma-separated list of users that should not be listed
|
||||
HideUsers=
|
||||
|
||||
# Maximum user id for displayed users
|
||||
MaximumUid=60513
|
||||
|
||||
# Minimum user id for displayed users
|
||||
MinimumUid=1000
|
||||
|
||||
# Remember the session of the last successfully logged in user
|
||||
RememberLastSession=true
|
||||
|
||||
# Remember the last successfully logged in user
|
||||
RememberLastUser=true
|
||||
|
||||
# When logging in as the same user twice, restore the original session, rather than create a new one
|
||||
ReuseSession=true
|
||||
|
||||
|
||||
[Wayland]
|
||||
# Path of the Wayland compositor to execute when starting the greeter
|
||||
CompositorCommand=weston --shell=fullscreen-shell.so
|
||||
|
||||
# Enable Qt's automatic high-DPI scaling
|
||||
EnableHiDPI=true
|
||||
|
||||
# Path to a script to execute when starting the desktop session
|
||||
SessionCommand=/usr/share/sddm/scripts/wayland-session
|
||||
|
||||
# Comma-separated list of directories containing available Wayland sessions
|
||||
SessionDir=/usr/local/share/wayland-sessions,/usr/share/wayland-sessions
|
||||
|
||||
# Path to the user session log file
|
||||
SessionLogFile=.local/share/sddm/wayland-session.log
|
||||
|
||||
|
||||
[X11]
|
||||
# Path to a script to execute when starting the display server
|
||||
DisplayCommand=/usr/share/sddm/scripts/Xsetup
|
||||
|
||||
# Path to a script to execute when stopping the display server
|
||||
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
|
||||
|
||||
# Enable Qt's automatic high-DPI scaling
|
||||
EnableHiDPI=true
|
||||
|
||||
# Arguments passed to the X server invocation
|
||||
ServerArguments=-nolisten tcp
|
||||
|
||||
# Path to X server binary
|
||||
ServerPath=/usr/bin/X
|
||||
|
||||
# Path to a script to execute when starting the desktop session
|
||||
SessionCommand=/usr/share/sddm/scripts/Xsession
|
||||
|
||||
# Comma-separated list of directories containing available X sessions
|
||||
SessionDir=/usr/local/share/xsessions,/usr/share/xsessions
|
||||
|
||||
# Path to the user session log file
|
||||
SessionLogFile=.local/share/sddm/xorg-session.log
|
||||
|
||||
# Path to Xephyr binary
|
||||
XephyrPath=/usr/bin/Xephyr
|
||||
|
||||
|
||||
14
roles/sddm/tasks/main.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
- name: "[SDDM] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- sddm
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[SDDM] Configure"
|
||||
ansible.builtin.copy:
|
||||
mode: 0755
|
||||
src: "./"
|
||||
dest: "/etc/"
|
||||
become: true
|
||||
147
roles/starship/files/starship.toml
Executable file
@@ -0,0 +1,147 @@
|
||||
## FIRST LINE/ROW: Info & Status
|
||||
# First param ─┌
|
||||
[username]
|
||||
format = " [╭─$user]($style)@"
|
||||
show_always = true
|
||||
style_root = "bold red"
|
||||
style_user = "bold red"
|
||||
|
||||
# Second param
|
||||
[hostname]
|
||||
disabled = false
|
||||
format = "[$hostname]($style) in "
|
||||
ssh_only = false
|
||||
style = "bold dimmed red"
|
||||
trim_at = "-"
|
||||
|
||||
# Third param
|
||||
[directory]
|
||||
style = "purple"
|
||||
truncate_to_repo = true
|
||||
truncation_length = 0
|
||||
truncation_symbol = "repo: "
|
||||
|
||||
# Fourth param
|
||||
[sudo]
|
||||
disabled = false
|
||||
|
||||
# Before all the version info (python, nodejs, php, etc.)
|
||||
[git_status]
|
||||
ahead = "⇡${count}"
|
||||
behind = "⇣${count}"
|
||||
deleted = "x"
|
||||
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
|
||||
style = "white"
|
||||
|
||||
# Last param in the first line/row
|
||||
[cmd_duration]
|
||||
disabled = false
|
||||
format = "took [$duration]($style)"
|
||||
min_time = 1
|
||||
|
||||
|
||||
## SECOND LINE/ROW: Prompt
|
||||
# Somethere at the beginning
|
||||
[battery]
|
||||
charging_symbol = ""
|
||||
disabled = true
|
||||
discharging_symbol = ""
|
||||
full_symbol = ""
|
||||
|
||||
[[battery.display]] # "bold red" style when capacity is between 0% and 10%
|
||||
disabled = false
|
||||
style = "bold red"
|
||||
threshold = 15
|
||||
|
||||
[[battery.display]] # "bold yellow" style when capacity is between 10% and 30%
|
||||
disabled = true
|
||||
style = "bold yellow"
|
||||
threshold = 50
|
||||
|
||||
[[battery.display]] # "bold green" style when capacity is between 10% and 30%
|
||||
disabled = true
|
||||
style = "bold green"
|
||||
threshold = 80
|
||||
|
||||
# Prompt: optional param 1
|
||||
[time]
|
||||
disabled = true
|
||||
format = " 🕙 $time($style)\n"
|
||||
style = "bright-white"
|
||||
time_format = "%T"
|
||||
|
||||
# Prompt: param 2
|
||||
[character]
|
||||
error_symbol = " [×](bold red)"
|
||||
success_symbol = " [╰─λ](bold red)"
|
||||
|
||||
# SYMBOLS
|
||||
[status]
|
||||
disabled = false
|
||||
format = '[\[$symbol$status_common_meaning$status_signal_name$status_maybe_int\]]($style)'
|
||||
map_symbol = true
|
||||
pipestatus = true
|
||||
symbol = "🔴"
|
||||
|
||||
[aws]
|
||||
symbol = " "
|
||||
|
||||
[conda]
|
||||
symbol = " "
|
||||
|
||||
[dart]
|
||||
symbol = " "
|
||||
|
||||
[docker_context]
|
||||
symbol = " "
|
||||
|
||||
[elixir]
|
||||
symbol = " "
|
||||
|
||||
[elm]
|
||||
symbol = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
|
||||
[golang]
|
||||
symbol = " "
|
||||
|
||||
[hg_branch]
|
||||
symbol = " "
|
||||
|
||||
[java]
|
||||
symbol = " "
|
||||
|
||||
[julia]
|
||||
symbol = " "
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
|
||||
[nix_shell]
|
||||
symbol = " "
|
||||
|
||||
[nodejs]
|
||||
symbol = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
|
||||
[perl]
|
||||
symbol = " "
|
||||
|
||||
[php]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
symbol = " "
|
||||
|
||||
[ruby]
|
||||
symbol = " "
|
||||
|
||||
[rust]
|
||||
symbol = " "
|
||||
|
||||
[swift]
|
||||
symbol = "ﯣ "
|
||||
12
roles/starship/tasks/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
- name: "[Starship] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- starship
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[Starship] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config"
|
||||
10
roles/swaylock/files/swaylock.conf
Executable file
@@ -0,0 +1,10 @@
|
||||
clock
|
||||
grace=5
|
||||
indicator
|
||||
color=550000
|
||||
timestr=%k:%M
|
||||
datestr=%a %e.%m.%Y
|
||||
effect-blur=4x2
|
||||
effect-scale=0.4
|
||||
effect-vignette=0.2:0.5
|
||||
image=~/.config/background
|
||||
19
roles/swaylock/tasks/main.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: "[Swaylock] Install"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- swaylock-effects-git
|
||||
use: paru
|
||||
state: present
|
||||
become: true
|
||||
|
||||
- name: "[Swaylock] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/swaylock"
|
||||
state: directory
|
||||
|
||||
- name: "[Swaylock] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/swaylock"
|
||||
98
roles/system/files/pacman.conf
Normal file
@@ -0,0 +1,98 @@
|
||||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
#HookDir = /etc/pacman.d/hooks/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
Color
|
||||
ILoveCandy
|
||||
#NoProgressBar
|
||||
CheckSpace
|
||||
#VerbosePkgLists
|
||||
ParallelDownloads = 5
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The testing repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
#[core-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[extra-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# If you want to run 32 bit applications on your x86_64 system,
|
||||
# enable the multilib repositories as required here.
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[multilib]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
||||
269
roles/system/tasks/Archlinux.yml
Normal file
@@ -0,0 +1,269 @@
|
||||
---
|
||||
- name: "[Arch] Configure pacman"
|
||||
ansible.builtin.copy:
|
||||
mode: 0644
|
||||
src: "pacman.conf"
|
||||
dest: "/etc/"
|
||||
become: true
|
||||
tags:
|
||||
- pacman
|
||||
|
||||
- name: "[Arch] Update packages"
|
||||
community.general.pacman:
|
||||
update_cache: true
|
||||
upgrade: true
|
||||
state: latest
|
||||
become: true
|
||||
tags:
|
||||
- pacman
|
||||
|
||||
- name: "[Arch] Install default packages"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- networkmanager
|
||||
- networkmanager-openvpn
|
||||
- network-manager-applet
|
||||
- inotify-tools
|
||||
- cifs-utils
|
||||
- ntfs-3g
|
||||
- openssh
|
||||
- upower
|
||||
- unzip
|
||||
- less
|
||||
- curl
|
||||
- wget
|
||||
- awk
|
||||
- zip
|
||||
- tar
|
||||
- eza
|
||||
- bat
|
||||
- jq
|
||||
use: paru
|
||||
state: present
|
||||
tags:
|
||||
- default_pkgs
|
||||
|
||||
- name: "[Arch] Install programming packages"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- jdk-openjdk
|
||||
- maven
|
||||
- rustup
|
||||
- npm
|
||||
use: paru
|
||||
state: present
|
||||
tags:
|
||||
- programming_pkgs
|
||||
when: system != 'server'
|
||||
|
||||
- name: "[Arch] Configure rustup"
|
||||
command: rustup default stable
|
||||
tags:
|
||||
- programming_pkgs
|
||||
when: system != 'server'
|
||||
|
||||
- name: "[Arch] Install desktop packages"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
# Fonts
|
||||
- noto-fonts
|
||||
- noto-fonts-cjk
|
||||
- noto-fonts-emoji
|
||||
- ttf-font-awesome
|
||||
- ttf-firacode-nerd
|
||||
# Pipewire
|
||||
- pipewire
|
||||
- wireplumber
|
||||
- pipewire-alsa
|
||||
- pipewire-audio
|
||||
- pipewire-jack
|
||||
- pipewire-pulse
|
||||
- gst-plugin-pipewire
|
||||
# Bluetooth
|
||||
- bluez
|
||||
- bluez-utils
|
||||
- blueman
|
||||
# Printing
|
||||
- cups
|
||||
- cups-pdf
|
||||
# Theming
|
||||
#- qt5ct
|
||||
- nwg-look
|
||||
# Icon Themes
|
||||
- papirus-icon-theme
|
||||
# Cursor Themes
|
||||
- rose-pine-hyprcursor
|
||||
- xcursor-breeze
|
||||
# Themes
|
||||
- catppuccin-gtk-theme-frappe
|
||||
- catppuccin-gtk-theme-latte
|
||||
- catppuccin-gtk-theme-macchiato
|
||||
- catppuccin-gtk-theme-mocha
|
||||
# Misc
|
||||
- brightnessctl
|
||||
#- wlr-randr
|
||||
- playerctl
|
||||
- libnotify
|
||||
- mediainfo
|
||||
- hyprpicker
|
||||
- swww
|
||||
- swayidle
|
||||
- grimblast-git
|
||||
- cliphist
|
||||
- wl-clipboard
|
||||
- polkit-kde-agent
|
||||
- xdg-desktop-portal-hyprland
|
||||
- gnome-keyring
|
||||
use: paru
|
||||
state: present
|
||||
tags:
|
||||
- desktop_pkgs
|
||||
when: system != 'server'
|
||||
|
||||
- name: "[Arch] Install desktop applications"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- youtube-music
|
||||
- libreoffice-fresh
|
||||
- nextcloud-client
|
||||
- youtube-music
|
||||
- waypaper-git
|
||||
- vscodium-bin
|
||||
- pavucontrol
|
||||
- hyprpicker
|
||||
- brave-bin
|
||||
- obsidian
|
||||
- discord
|
||||
- yt-dlp
|
||||
- nvtop
|
||||
- nemo
|
||||
- mpv
|
||||
# Device configuration
|
||||
#- openrazer-daemon
|
||||
#- openrgb
|
||||
#- piper
|
||||
# AMD Stats
|
||||
#- amdgpu_top
|
||||
# Character map
|
||||
#- gucharmap
|
||||
# Calculator
|
||||
#- galculator
|
||||
use: paru
|
||||
state: present
|
||||
tags:
|
||||
- desktop_apps
|
||||
when: system != 'server'
|
||||
|
||||
- name: "[Arch] Install additional desktop packages"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- steam
|
||||
- lutris
|
||||
# Wine
|
||||
- wine-staging
|
||||
- giflib
|
||||
- lib32-giflib
|
||||
- libpng
|
||||
- lib32-libpng
|
||||
- libldap
|
||||
- lib32-libldap
|
||||
- gnutls
|
||||
- lib32-gnutls
|
||||
- mpg123
|
||||
- lib32-mpg123
|
||||
- openal
|
||||
- lib32-openal
|
||||
- v4l-utils
|
||||
- lib32-v4l-utils
|
||||
- libpulse
|
||||
- lib32-libpulse
|
||||
- libgpg-error
|
||||
- lib32-libgpg-error
|
||||
- alsa-plugins
|
||||
- lib32-alsa-plugins
|
||||
- alsa-lib
|
||||
- lib32-alsa-lib
|
||||
- libjpeg-turbo
|
||||
- lib32-libjpeg-turbo
|
||||
- sqlite
|
||||
- lib32-sqlite
|
||||
- libxcomposite
|
||||
- lib32-libxcomposite
|
||||
- libxinerama
|
||||
- lib32-libgcrypt
|
||||
- libgcrypt
|
||||
- lib32-libxinerama
|
||||
- ncurses
|
||||
- lib32-ncurses
|
||||
- ocl-icd
|
||||
- lib32-ocl-icd
|
||||
- libxslt
|
||||
- lib32-libxslt
|
||||
- libva
|
||||
- lib32-libva
|
||||
- gtk3
|
||||
- lib32-gtk3
|
||||
- gst-plugins-base-libs
|
||||
- lib32-gst-plugins-base-libs
|
||||
- vulkan-icd-loader
|
||||
- lib32-vulkan-icd-loader
|
||||
use: paru
|
||||
state: present
|
||||
tags:
|
||||
- desktop_pkgs
|
||||
when: system == 'desktop_full'
|
||||
|
||||
- name: Gather GPU info
|
||||
shell: "lspci | grep -i vga"
|
||||
register: gpu_info
|
||||
tags:
|
||||
- desktop_pkgs
|
||||
when: system == 'desktop_full'
|
||||
|
||||
- name: "[Arch] Install AMD packages"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- lib32-mesa
|
||||
- vulkan-radeon
|
||||
- lib32-vulkan-radeon
|
||||
use: paru
|
||||
state: present
|
||||
when: "system == 'desktop_full' and 'Advanced Micro Devices' in gpu_info.stdout"
|
||||
|
||||
- name: "[Arch] Install Intel packages"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- lib32-mesa
|
||||
- vulkan-intel
|
||||
- lib32-vulkan-intel
|
||||
use: paru
|
||||
state: present
|
||||
tags:
|
||||
- desktop_pkgs
|
||||
when: "system == 'desktop_full' and 'Intel Corporation' in gpu_info.stdout"
|
||||
|
||||
- name: "[Arch] Install Nvidia packages"
|
||||
kewlfft.aur.aur:
|
||||
name:
|
||||
- nvidia-dkms
|
||||
- nvidia-utils
|
||||
- lib32-nvidia-utils
|
||||
- nvidia-settings
|
||||
use: paru
|
||||
state: present
|
||||
tags:
|
||||
- desktop_pkgs
|
||||
when: "system == 'desktop_full' and 'NVIDIA' in gpu_info.stdout"
|
||||
|
||||
- name: "[Arch] Enable services"
|
||||
ansible.builtin.service:
|
||||
name: "{{ item }}"
|
||||
enabled: true
|
||||
with_items:
|
||||
- bluetooth
|
||||
- cups
|
||||
- sddm
|
||||
tags:
|
||||
- desktop_services
|
||||
when: "system == 'desktop'"
|
||||
become: true
|
||||
11
roles/system/tasks/main.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
- name: "[System] Checking for Distribution Config: {{ ansible_distribution }}"
|
||||
ansible.builtin.stat:
|
||||
path: "{{ role_path }}/tasks/{{ ansible_distribution }}.yml"
|
||||
register: system_distribution_config
|
||||
tags:
|
||||
- system
|
||||
|
||||
- name: "[System] Run Tasks: {{ ansible_distribution }}"
|
||||
ansible.builtin.include_tasks: "{{ ansible_distribution }}.yml"
|
||||
when: system_distribution_config.stat.exists
|
||||
20
roles/yazi/files/keymap.toml
Normal file
@@ -0,0 +1,20 @@
|
||||
# Bookmarks
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "b", "g" ]
|
||||
run = "cd ~/git/"
|
||||
desc = "GIT"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "b", "d" ]
|
||||
run = "cd ~/Data/"
|
||||
desc = "DATA"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "b", "s" ]
|
||||
run = "plugin bookmark --args=save"
|
||||
desc = "Save Bookmark"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
on = [ "b", "j" ]
|
||||
run = "plugin bookmark --args=jump"
|
||||
desc = "Jump Bookmark"
|
||||
39
roles/yazi/files/plugins/bookmark.yazi/init.lua
Normal file
@@ -0,0 +1,39 @@
|
||||
local temp_dir = os.getenv("TEMP") or os.getenv("TMP") or "/tmp"
|
||||
local file_name = temp_dir .. "/bookmark.yazi"
|
||||
|
||||
local save_bookmark = ya.sync(function(state, idx)
|
||||
local folder = Folder:by_kind(Folder.CURRENT)
|
||||
local file = io.open(file_name, "w")
|
||||
|
||||
if file then
|
||||
file:write(tostring(folder.cwd))
|
||||
file:close()
|
||||
end
|
||||
end)
|
||||
|
||||
local jump_bookmark = ya.sync(function(state, idx)
|
||||
local io = require("io")
|
||||
local file = io.open(file_name, "r")
|
||||
|
||||
if file then
|
||||
local line = file:read("*line")
|
||||
file:close()
|
||||
ya.manager_emit("cd", { line })
|
||||
ya.manager_emit("arrow", { -99999999 })
|
||||
end
|
||||
end)
|
||||
|
||||
return {
|
||||
entry = function(_, args)
|
||||
local action = args[1]
|
||||
if not action then
|
||||
return
|
||||
end
|
||||
|
||||
if action == "save" then
|
||||
save_bookmark()
|
||||
elseif action == "jump" then
|
||||
jump_bookmark()
|
||||
end
|
||||
end
|
||||
}
|
||||
4
roles/yazi/files/yazi.toml
Normal file
@@ -0,0 +1,4 @@
|
||||
[manager]
|
||||
sort_dir_first = true
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
18
roles/yazi/tasks/main.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: "[Yazi] Install"
|
||||
ansible.builtin.package:
|
||||
name:
|
||||
- yazi
|
||||
state: latest
|
||||
become: true
|
||||
|
||||
- name: "[Yazi] Create config folder"
|
||||
ansible.builtin.file:
|
||||
mode: "0755"
|
||||
path: "{{ ansible_user_dir }}/.config/yazi"
|
||||
state: directory
|
||||
|
||||
- name: "[Yazi] Configure"
|
||||
ansible.builtin.copy:
|
||||
src: "./"
|
||||
dest: "{{ ansible_user_dir }}/.config/yazi"
|
||||