summaryrefslogtreecommitdiff
path: root/artix/home/.config
diff options
context:
space:
mode:
authorNantha Sorubakanthan <nantha@mielota.com>2026-04-13 21:45:43 +0200
committerNantha Sorubakanthan <nantha@mielota.com>2026-04-13 21:45:43 +0200
commit0c913f1e421b9d47c052350c4c1d619e4ac6a297 (patch)
treec9124ff04b9252836221c41d2ca2fa133d166251 /artix/home/.config
Initial commit
Diffstat (limited to 'artix/home/.config')
-rw-r--r--artix/home/.config/alacritty/alacritty.toml31
-rw-r--r--artix/home/.config/cava/config26
-rw-r--r--artix/home/.config/dunst/dunstrc21
-rw-r--r--artix/home/.config/ghostty/config44
-rw-r--r--artix/home/.config/git/config11
-rw-r--r--artix/home/.config/helix/config.toml26
-rw-r--r--artix/home/.config/hypr/hyprland.conf182
-rwxr-xr-xartix/home/.config/hypr/xdg-portal-hyprland13
-rw-r--r--artix/home/.config/kitty/kitty.conf40
-rw-r--r--artix/home/.config/nvim/init.lua254
-rw-r--r--artix/home/.config/rofi/config.rasi27
-rw-r--r--artix/home/.config/rofi/tokyonight.rasi158
-rw-r--r--artix/home/.config/user-dirs.dirs8
-rw-r--r--artix/home/.config/waybar/config.jsonc90
-rw-r--r--artix/home/.config/waybar/style.css94
-rw-r--r--artix/home/.config/zathura/zathurarc11
-rw-r--r--artix/home/.config/zsh/.zprofile3
-rw-r--r--artix/home/.config/zsh/.zshrc41
18 files changed, 1080 insertions, 0 deletions
diff --git a/artix/home/.config/alacritty/alacritty.toml b/artix/home/.config/alacritty/alacritty.toml
new file mode 100644
index 0000000..bd8e7ab
--- /dev/null
+++ b/artix/home/.config/alacritty/alacritty.toml
@@ -0,0 +1,31 @@
+[window]
+padding = { x = 10, y = 10 }
+opacity = 0.73
+
+[font]
+normal = { family = "0xProto Nerd Font", style = "Regular" }
+size = 17
+
+[colors.primary]
+background = '#1a1b26'
+foreground = '#c0caf5'
+
+[colors.normal]
+black = '#15161e'
+red = '#f7768e'
+green = '#9ece6a'
+yellow = '#e0af68'
+blue = '#7aa2f7'
+magenta = '#bb9af7'
+cyan = '#7dcfff'
+white = '#a9b1d6'
+
+[colors.bright]
+black = '#414868'
+red = '#ff899d'
+green = '#9fe044'
+yellow = '#faba4a'
+blue = '#8db0ff'
+magenta = '#c7a9ff'
+cyan = '#a4daff'
+white = '#c0caf5'
diff --git a/artix/home/.config/cava/config b/artix/home/.config/cava/config
new file mode 100644
index 0000000..4716fb0
--- /dev/null
+++ b/artix/home/.config/cava/config
@@ -0,0 +1,26 @@
+[general]
+framerate = 100
+
+[output]
+
+method = noncurses
+orientation = horizontal
+
+[color]
+
+background = default
+foreground = default
+
+gradient = 1
+gradient_color_1 = '#e576fe'
+gradient_color_2 = '#ef85fd'
+gradient_color_3 = '#fa94fc'
+gradient_color_4 = '#ffa8fc'
+gradient_color_5 = '#ffbefd'
+gradient_color_6 = '#ffd4fe'
+gradient_color_7 = '#ffeafe'
+gradient_color_8 = '#ffffff'
+
+[smoothing]
+
+noise_reduction = 33
diff --git a/artix/home/.config/dunst/dunstrc b/artix/home/.config/dunst/dunstrc
new file mode 100644
index 0000000..8ab4e1e
--- /dev/null
+++ b/artix/home/.config/dunst/dunstrc
@@ -0,0 +1,21 @@
+[global]
+ background = "#1A1B26"
+ foreground = "#ffffff"
+ frame_color = "#3B4261"
+ frame_width = 5
+ timeout = 10
+ alignment = center
+ enable_recursive_icon_lookup = true
+ padding = 5
+ horizontal_padding = 5
+ font = 0xProto Nerd font 15
+ corner_radius = 0
+ separator_height = 5
+[urgency_low]
+ background = "#7aa2f7"
+ foreground = "#ffffff"
+ timeout = 10
+[urgency_critical]
+ background = "#F7768E"
+ foreground = "#1A1B26"
+ timeout = 10
diff --git a/artix/home/.config/ghostty/config b/artix/home/.config/ghostty/config
new file mode 100644
index 0000000..27da7eb
--- /dev/null
+++ b/artix/home/.config/ghostty/config
@@ -0,0 +1,44 @@
+font-family = "0xProto Nerd Font"
+font-size = 18
+
+cursor-style = block
+cursor-style-blink = true
+shell-integration-features = no-cursor
+
+background = #1a1b26
+foreground = #a9b1d6
+
+palette = 0=#32344a
+palette = 8=#787c99
+
+palette = 1=#f7768e
+palette = 9=#ff7a93
+
+palette = 2=#9ece6a
+palette = 10=#b9f27c
+
+palette = 3=#e0af68
+palette = 11=#ff9e64
+
+palette = 4=#7aa2f7
+palette = 12=#7da6ff
+
+palette = 5=#ad8ee6
+palette = 13=#bb9af7
+
+palette = 6=#449dab
+palette = 14=#0db9d7
+
+palette = 7=#a89984
+palette = 15=#acb0d0
+
+window-padding-x = 5,5
+window-decoration = false
+
+keybind = ctrl+shift+v=paste_from_clipboard
+keybind = ctrl+shift+c=copy_to_clipboard
+keybind = ctrl+equal=increase_font_size:1
+keybind = ctrl+minus=decrease_font_size:1
+
+confirm-close-surface = false
+resize-overlay = never
diff --git a/artix/home/.config/git/config b/artix/home/.config/git/config
new file mode 100644
index 0000000..8efedc4
--- /dev/null
+++ b/artix/home/.config/git/config
@@ -0,0 +1,11 @@
+[user]
+ email = nantha@mielota.com
+ name = Nantha Sorubakanthan
+ #signingkey = E6E0870909E743B5E4101068E614BDE9E305D5D7
+[init]
+ defaultBranch = main
+[core]
+ editor = nvim
+ autocrlf = input
+[color]
+ ui = true
diff --git a/artix/home/.config/helix/config.toml b/artix/home/.config/helix/config.toml
new file mode 100644
index 0000000..a13e774
--- /dev/null
+++ b/artix/home/.config/helix/config.toml
@@ -0,0 +1,26 @@
+theme = "tokyonight"
+
+[editor]
+ line-number = "relative"
+ cursorline = true
+ shell = ["zsh", "-c"]
+ end-of-line-diagnostics = "hint"
+[editor.indent-guides]
+ render = true
+ skip-levels = 1
+[editor.whitespace]
+ render = "all"
+[editor.soft-wrap]
+ enable = true
+[editor.file-picker]
+ hidden = false
+[editor.lsp]
+ display-messages = true
+[editor.statusline]
+ left = ["mode", "spinner", "version-control", "file-name"]
+[editor.inline-diagnostics]
+ cursor-line = "error"
+ other-lines = "disable"
+[keys.normal]
+ X = "select_line_above"
+ "A-s" = ":format"
diff --git a/artix/home/.config/hypr/hyprland.conf b/artix/home/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..28118bd
--- /dev/null
+++ b/artix/home/.config/hypr/hyprland.conf
@@ -0,0 +1,182 @@
+env = GDK_BACKEND,wayland,x11,*
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+
+exec-once = dunst
+exec-once = waybar
+exec-once = ~/.config/hypr/xdg-portal-hyprland
+exec-once = /usr/lib/hyprpolkitagent/hyprpolkitagent
+
+exec-once = gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
+exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
+env = QT_QPA_PLATFORMTHEME,gtk3
+
+$mainMod = SUPER
+
+monitor=HDMI-A-1, 2560x1440@100,0x0,1
+#monitor=eDP-1, 1920x1080@60, 0x0, 1
+#monitor=HDMI-A-1, preferred, auto, 1, mirror, eDP-1
+
+bind = $mainMod, A, fullscreen,
+bind = $mainMod, C, killactive,
+bind = $mainMod, D, exec, hyprpicker -naq
+bind = $mainMod, F, exec, firefox
+bind = $mainMod, J, togglesplit, # dwindle
+bind = $mainMod, M, exit,
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, Q, exec, alacritty
+bind = $mainMod, RETURN, exec, ~/.local/bin/spawn-alacritty-cwd
+bind = $mainMod, R, exec, rofi -show drun
+bind = $mainMod, U, exec, pkill waybar ; waybar
+bind = $mainMod, V, togglefloating,
+
+bind = , Print, exec, grim -g "$(slurp)" - | wl-copy
+bind = $mainMod, Print, exec, grim - | wl-copy
+
+bind = $mainMod, h, movefocus, l
+bind = $mainMod, l, movefocus, r
+bind = $mainMod, k, movefocus, u
+bind = $mainMod, j ,movefocus, d
+
+bind = $mainMod SHIFT, H, movewindow, l
+bind = $mainMod SHIFT, L, movewindow, r
+bind = $mainMod SHIFT, K, movewindow, u
+bind = $mainMod SHIFT, J, movewindow, d
+
+bind = $mainMod, code:10, workspace, 1
+bind = $mainMod, code:11, workspace, 2
+bind = $mainMod, code:12, workspace, 3
+bind = $mainMod, code:13, workspace, 4
+bind = $mainMod, code:14, workspace, 5
+bind = $mainMod, code:15, workspace, 6
+bind = $mainMod, code:16, workspace, 7
+bind = $mainMod, code:17, workspace, 8
+bind = $mainMod, code:18, workspace, 9
+bind = $mainMod, code:19, workspace, 10
+
+bind = $mainMod SHIFT, code:10, movetoworkspace, 1
+bind = $mainMod SHIFT, code:11, movetoworkspace, 2
+bind = $mainMod SHIFT, code:12, movetoworkspace, 3
+bind = $mainMod SHIFT, code:13, movetoworkspace, 4
+bind = $mainMod SHIFT, code:14, movetoworkspace, 5
+bind = $mainMod SHIFT, code:15, movetoworkspace, 6
+bind = $mainMod SHIFT, code:16, movetoworkspace, 7
+bind = $mainMod SHIFT, code:17, movetoworkspace, 8
+bind = $mainMod SHIFT, code:18, movetoworkspace, 9
+bind = $mainMod SHIFT, code:19, movetoworkspace, 10
+
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
+
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+misc {
+ force_default_wallpaper = 0
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+ background_color = rgb(000000)
+}
+
+general {
+ gaps_in = 10
+ gaps_out = 15
+
+ border_size = 0
+
+ col.active_border = rgba(b800e6ee) rgba(e699ffee) 45deg
+ col.inactive_border = rgba(595959aa)
+
+ resize_on_border = false
+ allow_tearing = false
+
+ layout = dwindle
+}
+
+decoration {
+ rounding = 0
+ rounding_power = 10
+
+ active_opacity = 1.0
+ inactive_opacity = 1.0
+
+ shadow {
+ enabled = true
+ range = 4
+ render_power = 3
+ color = rgba(1a1a1aee)
+ }
+
+ blur {
+ enabled = false
+ size = 10
+ passes = 3
+
+ vibrancy = 0.1696
+ }
+}
+
+animations {
+ #enabled = yes, please :)
+ enabled = no
+
+ bezier = easeOutQuint,0.23,1,0.32,1
+ bezier = easeInOutCubic,0.65,0.05,0.36,1
+ bezier = linear,0,0,1,1
+ bezier = almostLinear,0.5,0.5,0.75,1.0
+ bezier = quick,0.15,0,0.1,1
+
+ animation = global, 1, 10, default
+ animation = border, 1, 5.39, easeOutQuint
+ animation = windows, 1, 4.79, easeOutQuint
+ animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+ animation = windowsOut, 1, 1.49, linear, popin 87%
+ animation = fadeIn, 1, 1.73, almostLinear
+ animation = fadeOut, 1, 1.46, almostLinear
+ animation = fade, 1, 3.03, quick
+ animation = layers, 1, 3.81, easeOutQuint
+ animation = layersIn, 1, 4, easeOutQuint, fade
+ animation = layersOut, 1, 1.5, linear, fade
+ animation = fadeLayersIn, 1, 1.79, almostLinear
+ animation = fadeLayersOut, 1, 1.39, almostLinear
+ animation = workspaces, 1, 1.94, almostLinear, fade
+ animation = workspacesIn, 1, 1.21, almostLinear, fade
+ animation = workspacesOut, 1, 1.94, almostLinear, fade
+}
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+}
+
+master {
+ new_status = master
+}
+
+misc {
+ force_default_wallpaper = -1
+ disable_hyprland_logo = true
+}
+env = XCURSOR_SIZE,24
+env = XCURSOR_THEME,whiteglass
+
+input {
+ kb_layout = fr
+ kb_model = pc105
+ kb_options = terminate:ctrl_amt_bksp
+
+ follow_mouse = 1
+}
diff --git a/artix/home/.config/hypr/xdg-portal-hyprland b/artix/home/.config/hypr/xdg-portal-hyprland
new file mode 100755
index 0000000..df34de5
--- /dev/null
+++ b/artix/home/.config/hypr/xdg-portal-hyprland
@@ -0,0 +1,13 @@
+#!/bin/bash
+sleep 1
+killall xdg-desktop-portal-hyprland
+killall xdg-desktop-portal-gnome
+killall xdg-desktop-portal-wlr
+killall xdg-desktop-portal
+logger 'killed all xdg-desktop'
+sleep 1
+/usr/lib/xdg-desktop-portal-hyprland
+logger 'xdg-desktop-portal-hyprland started'
+sleep 2
+/usr/lib/xdg-desktop-portal
+logger 'xdg-desktop-portal started'
diff --git a/artix/home/.config/kitty/kitty.conf b/artix/home/.config/kitty/kitty.conf
new file mode 100644
index 0000000..2cc7b2d
--- /dev/null
+++ b/artix/home/.config/kitty/kitty.conf
@@ -0,0 +1,40 @@
+window_padding_width 0
+window_padding_height 0
+font_family 0xProto Nerd font
+bold_font auto
+italic_font auto
+bold_italic_font auto
+font_size 15.0
+disable_ligatures never
+cursor_shape block
+shell_integration no-cursor
+cursor_blink_interval 0
+scrollback_lines 2000
+scrollbar never
+open_url_with firefox
+detect_ulrs yes
+hide_window_decorations yes
+background_blur 0
+background_opacity 1.0
+background_image none
+cursor #bfc9f4
+foreground #bfc9f4
+background #1a1b26
+selection_foreground #1a1b26
+selection_background #bfc9f4
+color0 #32344a
+color1 #f7768e
+color2 #9ece6a
+color3 #e0af68
+color4 #7aa2f7
+color5 #ad8ee6
+color6 #449dab
+color7 #787c99
+color8 #444b6a
+color9 #ff7a93
+color10 #b9f27c
+color11 #ff9e64
+color12 #7da6ff
+color13 #bb9af7
+color14 #0db9d7
+color15 #acb0d0
diff --git a/artix/home/.config/nvim/init.lua b/artix/home/.config/nvim/init.lua
new file mode 100644
index 0000000..71bedac
--- /dev/null
+++ b/artix/home/.config/nvim/init.lua
@@ -0,0 +1,254 @@
+vim.g.mapleader = " "
+
+vim.o.number = true
+vim.o.relativenumber = true
+
+vim.o.undofile = true
+vim.o.ignorecase = true
+
+vim.o.expandtab = false
+vim.o.shiftwidth = 8
+vim.o.tabstop = 8
+vim.o.softtabstop = 8
+vim.o.smartindent = true
+vim.o.autoindent = true
+
+vim.o.termguicolors = true
+vim.o.signcolumn = "yes"
+vim.o.winborder = 'single'
+vim.o.showmode = true
+vim.o.guicursor = ""
+
+vim.o.swapfile = false
+
+vim.o.list = true
+vim.o.cursorline = true
+
+-- •⏎.·○◦
+vim.o.listchars = "tab:🡪 ,trail:·,eol:⏎,space:·,multispace:·,lead:·,leadmultispace:·"
+
+vim.o.completeopt = "fuzzy,menuone,noselect"
+vim.diagnostic.config({ virtual_text = true })
+
+-- FRENCH SPELLS
+
+local spell_path = vim.fn.stdpath("data") .. "/site/spell"
+if not (vim.uv.fs_stat(spell_path .. "/fr.utf-8.spl") and vim.uv.fs_stat(spell_path .. "/fr.utf-8.sug")) then
+ print("Installing french spells")
+ -- Other mirrors can be found on https://www.vim.org/mirrors.php
+ local mirror = "https://vim.mirror.garr.it/pub/vim/" .. "runtime/spell/"
+ local files = { "fr.utf-8.spl", "fr.utf-8.sug" }
+ vim.fn.mkdir(spell_path, "p")
+ for _, file in ipairs(files) do
+ vim.fn.system(string.format("curl -L %s%s -o %s/%s", mirror, file, spell_path, file))
+ end
+end
+
+vim.cmd [[set spelllang=en,fr]]
+vim.cmd [[set spell]]
+
+-- PLUGINS
+
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not vim.uv.fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+end
+vim.opt.rtp:prepend(lazypath)
+
+require("lazy").setup({
+ spec = {
+ "neovim/nvim-lspconfig",
+ "ibhagwan/fzf-lua",
+ "nvim-tree/nvim-web-devicons",
+ "mfussenegger/nvim-jdtls",
+ "mfussenegger/nvim-dap",
+ {
+ "folke/tokyonight.nvim",
+ lazy = false,
+ priority = 1000,
+ opts = {
+ style = "night",
+ transparent = true,
+ styles = {
+ comments = { italic = true, bold = false },
+ keywords = { italic = true, bold = false },
+ functions = { italic = true, bold = false },
+ variables = { italic = false, bold = false },
+ sidebars = "dark",
+ floats = "dark",
+ },
+ dim_inactive = false,
+
+ on_colors = function(colors) end,
+ on_highlights = function(highlights, colors) end,
+ cache = true,
+ },
+ },
+ { "lewis6991/gitsigns.nvim", opts = {} },
+ { "windwp/nvim-autopairs", opts = {} },
+ {
+ "saghen/blink.cmp",
+ opts = {
+ keymap = { preset = 'enter' },
+ fuzzy = { implementation = "rust" }
+ }
+ },
+ {
+ "stevearc/oil.nvim",
+ opts = {
+ default_file_explorer = true,
+ lsp_file_methods = {
+ enabled = true,
+ timeout_ms = 1000,
+ autosave_changes = true,
+ },
+ columns = {
+ "permissions",
+ "size",
+ "icon",
+ },
+ float = {
+ max_width = 0.7,
+ max_height = 0.6,
+ border = vim.o.winborder,
+ },
+ buf_options = {
+ buflisted = false,
+ bufhidden = "hide",
+ },
+ view_options = {
+ show_hidden = true,
+ },
+ }
+ },
+ {
+ "sphamba/smear-cursor.nvim",
+ opts = {
+ smear_insert_mode = true,
+ stiffness = 0.7,
+ trailing_stiffness = 0.3,
+ stiffness_insert_mode = 0.7,
+ trailing_stiffness_insert_mode = 0.7,
+ damping = 0.67,
+ damping_insert_mode = 0.67,
+ distance_stop_animating = 0.4,
+ },
+ },
+ {
+ "nvim-neo-tree/neo-tree.nvim",
+ opts = {},
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ "MunifTanjim/nui.nvim",
+ },
+ lazy = false
+ }
+ }
+})
+
+vim.cmd [[colorscheme tokyonight-night]]
+vim.cmd [[Gitsigns toggle_current_line_blame]]
+
+-- MAPPING
+
+local map = vim.keymap.set
+
+map("n", "<C-d>", "<C-d>zz")
+map("n", "<C-u>", "<C-u>zz")
+map("v", "J", ":m '>+1<CR>gv=gv")
+map("v", "K", ":m '<-2<CR>gv=gv")
+map("n", "n", "nzzzv")
+map("n", "N", "Nzzzv")
+map("n", "<leader>s", [[%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
+map("n", "<leader>e", [[:Oil<CR>]])
+
+local fzf = require("fzf-lua") -- blazing fast
+
+map("n", "<leader>F", ":FzfLua<CR>")
+map("n", "<leader>f", fzf.files)
+map("n", "<leader>t", fzf.treesitter)
+map("n", "<leader>/", fzf.live_grep)
+
+-- Configure lua_ls to use neovim runtime or all of lua_ls lib.
+-- We put way much load on the cpu if we open both.
+local lua_ls_lib = {}
+local neovim_config_path = vim.fn.expand("~/code/dox/artixlinux/home/.config/nvim/init.lua")
+
+if vim.api.nvim_buf_get_name(0) == neovim_config_path then
+ lua_ls_lib = vim.api.nvim_get_runtime_file("", true)
+else
+ for lib in vim.fn.expand("/usr/lib/lua-language-server/meta/3rd/*/library"):gmatch("[^\n]+") do
+ table.insert(lua_ls_lib, lib)
+ end
+end
+
+vim.lsp.config("lua_ls", {
+ settings = {
+ Lua = {
+ workspace = {
+ library = lua_ls_lib
+ }
+ }
+ }
+})
+
+-- do not enable jdtls here, we let the nvim-jdtls plugin do everything
+vim.lsp.enable({
+ "lua_ls", "cssls", "html", "jsonls", "clangd", "ts_ls",
+ "tinymist", "marksman", "lemminx", "rust_analyzer", "pyright"
+})
+
+-- AUTOCMDS
+
+vim.api.nvim_create_autocmd("TextYankPost", {
+ callback = function() vim.hl.on_yank() end
+})
+
+vim.api.nvim_create_autocmd("BufWritePre", {
+ callback = function() vim.lsp.buf.format() end
+})
+
+vim.api.nvim_create_autocmd("BufWritePost", {
+ pattern = "*.tex",
+ callback = function() vim.cmd [[! pdflatex % ]] end
+})
+
+vim.api.nvim_create_autocmd("FileType", {
+ pattern = "java",
+ callback = function(args)
+ local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
+ local workspace_dir = vim.fn.stdpath("data")
+ .. package.config:sub(1, 1)
+ .. "jdtls-workspace"
+ .. package.config:sub(1, 1)
+ .. project_name
+
+ local config = {
+ name = "jdtls",
+ cmd = {
+ "jdtls",
+ "-data",
+ workspace_dir,
+ },
+ root_dir = vim.fs.root(0, { ".git", "meta", "gradlew", "mvnw" }),
+ settings = { java = {} },
+ init_options = { bundles = {} },
+ }
+ require('jdtls').start_or_attach(config)
+ end
+})
+
+--[[
+function get_hl_groups()
+ for hl_name, hl in pairs(vim.api.nvim_get_hl(0, {})) do
+ print(hl_name)
+ end
+end
+
+local function update_hl(group, tbl)
+ local old_hl = vim.api.nvim_get_hl_by_name(group, true)
+ local new_hl = vim.tbl_extend('force', old_hl, tbl)
+ vim.api.nvim_set_hl(0, group, new_hl)
+end
+]]
diff --git a/artix/home/.config/rofi/config.rasi b/artix/home/.config/rofi/config.rasi
new file mode 100644
index 0000000..dab25d3
--- /dev/null
+++ b/artix/home/.config/rofi/config.rasi
@@ -0,0 +1,27 @@
+@theme "tokyonight.rasi"
+
+configuration {
+ modes: "window,drun,run,ssh";
+ font: "0xProto Nerd Font 18";
+ show-icons: true;
+ terminal: "alacritty";
+ ssh-client: "ssh";
+ disable-history: true;
+ sort: true;
+ sorting-method: "normal";
+ case-sensitive: false;
+ case-smart: false;
+ cycle: true;
+ sidebar-mode: false;
+ hover-select: true;
+
+ timeout {
+ action: "kb-cancel";
+ delay: 0;
+ }
+
+ filebrowser {
+ directories-first: true;
+ sorting-method: "name";
+ }
+}
diff --git a/artix/home/.config/rofi/tokyonight.rasi b/artix/home/.config/rofi/tokyonight.rasi
new file mode 100644
index 0000000..2f322fc
--- /dev/null
+++ b/artix/home/.config/rofi/tokyonight.rasi
@@ -0,0 +1,158 @@
+/*******************************************************************************
+ * ROFI Color theme
+ * User: Lairizzle
+ * Copyright: Lairizzle
+ * GitHub: https://github.com/Lairizzle/rofi-tokyonight
+ ********************************************************************************/
+
+* {
+ selected-normal-foreground: rgba(125, 207, 255, 1); /* blue highlight */
+ foreground: rgba(224, 234, 252, 1); /* bright */
+ normal-foreground: @foreground;
+ alternate-normal-background: rgba(36, 40, 59, 1); /* #24283b */
+ red: rgba(247, 118, 142, 1); /* #f7768e */
+ selected-urgent-foreground: rgba(125, 207, 255, 1); /* bright blue */
+ blue: rgba(125, 207, 255, 1); /* #7dcfff */
+ urgent-foreground: rgba(247, 118, 142, 1); /* #f7768e */
+ alternate-urgent-background: rgba(36, 40, 59, 1); /* #24283b */
+ active-foreground: rgba(125, 207, 255, 1); /* blue */
+ lightbg: rgba(217, 222, 239, 1);
+ selected-active-foreground: rgba(125, 207, 255, 1);
+ alternate-active-background: rgba(36, 40, 59, 1);
+ background: rgba(26, 27, 38, 0.93); /* #1a1b26 */
+ bordercolor: rgba(125, 207, 255, 1); /* #7dcfff */
+ alternate-normal-foreground: @foreground;
+ normal-background: rgba(36, 40, 59, 0.06);
+ lightfg: rgba(200, 210, 255, 1); /* bright dim text */
+ selected-normal-background: rgba(65, 72, 104, 1); /* #414868 */
+ border-color: @bordercolor;
+ spacing: 2;
+ separatorcolor: rgba(65, 72, 104, 1);
+ urgent-background: rgba(26, 27, 38, 1); /* #1a1b26 */
+ selected-urgent-background: rgba(247, 118, 142, 1);
+ alternate-urgent-foreground: @urgent-foreground;
+ background-color: rgba(0, 0, 0, 0);
+ alternate-active-foreground: @active-foreground;
+ active-background: rgba(26, 27, 38, 1);
+ selected-active-background: rgba(65, 72, 104, 1); /* #414868 */
+}
+
+window {
+ background-color: @background;
+ border: 2;
+ border-radius: 8px;
+ padding: 5;
+ width: 50%;
+ height: 50%;
+}
+mainbox {
+ border: 0;
+ padding: 0;
+}
+message {
+ border: 2px 0px 0px ;
+ border-color: @separatorcolor;
+ padding: 1px ;
+}
+textbox {
+ text-color: @foreground;
+}
+listview {
+ fixed-height: 0;
+ border: 2px 0px 0px ;
+ border-color: @separatorcolor;
+ spacing: 2px ;
+ scrollbar: true;
+ padding: 2px 0px 0px ;
+}
+element {
+ border: 0;
+ padding: 1px ;
+}
+element-text {
+ background-color: inherit;
+ text-color: inherit;
+}
+element.normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+}
+element.normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+element.normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+}
+element.selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+}
+element.selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
+}
+element.selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
+}
+element.alternate.normal {
+ background-color: @alternate-normal-background;
+ text-color: @alternate-normal-foreground;
+}
+element.alternate.urgent {
+ background-color: @alternate-urgent-background;
+ text-color: @alternate-urgent-foreground;
+}
+element.alternate.active {
+ background-color: @alternate-active-background;
+ text-color: @alternate-active-foreground;
+}
+scrollbar {
+ width: 4px ;
+ border: 0;
+ handle-width: 8px ;
+ padding: 0;
+}
+mode-switcher {
+ border: 2px 0px 0px ;
+ border-color: @separatorcolor;
+}
+button.selected {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+}
+inputbar {
+ spacing: 0;
+ text-color: @normal-foreground;
+ padding: 1px ;
+}
+case-indicator {
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+entry {
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+prompt {
+ spacing: 0;
+ text-color: @normal-foreground;
+}
+inputbar {
+ children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
+}
+textbox-prompt-colon {
+ expand: false;
+ str: ":";
+ margin: 0px 0.3em 0em 0em ;
+ text-color: @normal-foreground;
+}
+scrollbar {
+ width: 4px;
+ border: 0;
+ handle-width: 8px;
+ padding: 0;
+ handle-color: rgba(125, 207, 255, 0.8); /* bright blue scrollbar handle */
+}
diff --git a/artix/home/.config/user-dirs.dirs b/artix/home/.config/user-dirs.dirs
new file mode 100644
index 0000000..6074b27
--- /dev/null
+++ b/artix/home/.config/user-dirs.dirs
@@ -0,0 +1,8 @@
+XDG_DESKTOP_DIR="$HOME"
+XDG_DOWNLOAD_DIR="$HOME/dl"
+XDG_TEMPLATES_DIR="$HOME/bin"
+XDG_PUBLICSHARE_DIR="$HOME/bin"
+XDG_DOCUMENTS_DIR="$HOME/code"
+XDG_MUSIC_DIR="$HOME/music"
+XDG_PICTURES_DIR="$HOME/media"
+XDG_VIDEOS_DIR="$HOME/media"
diff --git a/artix/home/.config/waybar/config.jsonc b/artix/home/.config/waybar/config.jsonc
new file mode 100644
index 0000000..c13824a
--- /dev/null
+++ b/artix/home/.config/waybar/config.jsonc
@@ -0,0 +1,90 @@
+{
+ "margin-top": 15,
+ "margin-left": 15,
+ "margin-right": 15,
+ "layer": "top",
+ "position": "top",
+ "spacing": 3,
+ // All modules : battery, pulseaudio, tray, hyprland/workspaces, clock, cpu, memory, network
+ "modules-left": [
+ "hyprland/workspaces",
+ "hyprland/window"
+ ],
+ "modules-center": [
+ "clock"
+ ],
+ "modules-right": [
+ "tray",
+ "battery",
+ "pulseaudio",
+ "temperature",
+ "cpu",
+ "memory",
+ "network"
+ ],
+ "temperature": {
+ "format": "TEMP: {temperatureC}°C",
+ "hwmon-path": [
+ "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon2/temp1_input"
+ ],
+ "critical-threshold": 65,
+ "interval": 3
+ },
+ "hyprland/workspaces": {
+ "format": "{id}",
+ "show-special": true
+ },
+ "hyprland/window": {
+ "format": "{initialTitle}",
+ "tooltip": false,
+ "icon": true
+ },
+ "network": {
+ "format": "{ifname}",
+ "format-disconnected": "NULL",
+ "interval": 5,
+ "tooltip": true,
+ "tooltip-format": "{essid}"
+ },
+ "cpu": {
+ "format": "CPU: {usage}%",
+ "interval": 3,
+ "states": {
+ "warning": 40,
+ "urgent": 60,
+ "critical": 80
+ }
+ },
+ "memory": {
+ "format": "MEM: {percentage}%",
+ "format-alt": "MEM: {used} GiB",
+ "interval": 3,
+ "states": {
+ "warning": 40,
+ "urgent": 60,
+ "critical": 80
+ },
+ "tooltip": true,
+ "tooltip-format": "{used}/{total} GiB"
+ },
+ "pulseaudio": {
+ "format": "VOL: {volume}%",
+ "format-bluetooth": "VOL: {volume}%",
+ "format-muted": "MUTED",
+ "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ },
+ "battery": {
+ "format": "BAT: {capacity}%",
+ "interval": 5,
+ "states": {
+ "warning": 60,
+ "urgent": 35,
+ "critical": 20
+ }
+ },
+ "clock": {
+ "format": "{:%H:%M:%S - %a %d %B %Y}",
+ "tooltip": false,
+ "interval": 1
+ }
+}
diff --git a/artix/home/.config/waybar/style.css b/artix/home/.config/waybar/style.css
new file mode 100644
index 0000000..cc2bab3
--- /dev/null
+++ b/artix/home/.config/waybar/style.css
@@ -0,0 +1,94 @@
+* {
+ font-family: "0xProto Nerd Font";
+ font-weight: bold;
+}
+
+#waybar {
+ background: #1a1b26;
+ color: #fff;
+}
+
+#workspaces button {
+ color: #fff;
+ border-radius: 0;
+}
+
+#workspaces button.active {
+ background: #ad8ee6;
+}
+
+#workspaces button.special {
+ background: #7aa2f7;
+}
+
+#workspaces button.urgent {
+ background: #f7768e;
+}
+
+#workspaces button:hover {
+ box-shadow: none;
+ text-shadow: none;
+ background: #32344a;
+ border: none;
+ transition: none;
+ color: #7aa2f7;
+}
+
+#battery,
+#cpu,
+#memory,
+#pulseaudio,
+#network,
+#clock,
+#tray,
+#temperature,
+#workspaces button {
+ padding: 7 7;
+}
+
+#network {
+ background: #449dab;
+}
+
+#pulseaudio {
+ background: #ad8ee6;
+}
+
+#pulseaudio.bluetooth {
+ background: #7aa2f7;
+}
+
+#battery,
+#cpu,
+#memory,
+#temperature {
+ background: #9ece6a;
+}
+
+#battery.warning,
+#cpu.warning,
+#memory.warning {
+ background: #e0af68;
+}
+
+#battery.urgent,
+#cpu.urgent,
+#memory.urgent,
+#network.disabled {
+ background: #ff9e64;
+}
+
+#battery.critical,
+#cpu.critical,
+#pulseaudio.muted,
+#memory.critical,
+#network.disconnected,
+#temperature.critical {
+ background: #f7768e
+}
+
+#window {
+ margin-left: 10px;
+ background: #32344a;
+ padding: 7;
+}
diff --git a/artix/home/.config/zathura/zathurarc b/artix/home/.config/zathura/zathurarc
new file mode 100644
index 0000000..ee2e7ff
--- /dev/null
+++ b/artix/home/.config/zathura/zathurarc
@@ -0,0 +1,11 @@
+set selection-clipboard clipboard
+
+set inputbar-bg "#1a1b26"
+set statusbar-bg "#1a1b26"
+set default-bg "#1a1b26"
+set highlight-color "#4084d6"
+set recolor-lightcolor "#1a1b26"
+set recolor-darkcolor "#a9b1d6"
+
+set recolor "false"
+set recolor-keephue "true"
diff --git a/artix/home/.config/zsh/.zprofile b/artix/home/.config/zsh/.zprofile
new file mode 100644
index 0000000..f1e5551
--- /dev/null
+++ b/artix/home/.config/zsh/.zprofile
@@ -0,0 +1,3 @@
+[[ $(tty) = "/dev/tty1" ]] && start-hyprland
+[[ $(tty) = "/dev/tty2" ]] && /usr/lib/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland
+[[ $(tty) = "/dev/ttyv0" ]] && startx
diff --git a/artix/home/.config/zsh/.zshrc b/artix/home/.config/zsh/.zshrc
new file mode 100644
index 0000000..bc53096
--- /dev/null
+++ b/artix/home/.config/zsh/.zshrc
@@ -0,0 +1,41 @@
+[ -d $XDG_CACHE_HOME/zsh ] || mkdir $XDG_CACHE_HOME/zsh
+[ -d $XDG_STATE_HOME/zsh ] || mkdir $XDG_STATE_HOME/zsh
+
+alias grep="grep --color=auto"
+alias ls="ls -a --color=auto --group-directories-first"
+alias mkdir="mkdir -v"
+alias ln="ln -v"
+alias rm="rm -v"
+alias rmdir="rmdir -v"
+alias chmod="chmod -v"
+alias mv="mv -v"
+alias cp="cp -v"
+
+zstyle :compinstall filename "~/.zshrc"
+autoload -Uz compinit
+compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
+zstyle ":completion:*" list-colors ${(s.:.)LS_COLORS}
+autoload -Uz vcs_info
+precmd_functions+=( vcs_info )
+
+setopt prompt_subst
+zstyle ':vcs_info:git:*' formats '(%F{red}%b%f)'
+
+PS1="%F{magenta}%3~%f\$vcs_info_msg_0_ %F{blue}
+%% %f"
+
+bindkey "^H" backward-kill-word
+bindkey "^[[1;5C" forward-word
+bindkey "^[[1;5D" backward-word
+bindkey "^E" end-of-line
+bindkey "^A" beginning-of-line
+
+if [[ "$(uname)" == "Linux" ]]; then
+ source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh 2> /dev/null || source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh 2> /dev/null
+ source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh 2> /dev/null || source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2> /dev/null || source /usr/share/zsh/site-functions/zsh-syntax-highlighting.zsh
+ alias lp="loginctl poweroff"
+ alias lr="loginctl reboot"
+else if [[ "$(uname)" == "FreeBSD" ]]
+ source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+ source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
+fi