From 4bfdafe13399e66d6fdb487873630c3678a3a28c Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Sat, 21 Oct 2023 01:04:41 +0300 Subject: Migrated to lazyvim --- aliases/.aliases/aliases | 2 - awesome/.config/awesome/picom.conf | 36 +- awesome/.config/awesome/rc.lua | 2 +- .../awesome/themes/powerarrow-black/theme.lua | 648 ++++---- kitty/.config/kitty/kitty.conf | 2 +- nvim/.config/nvim/.gitignore | 8 + nvim/.config/nvim/.luacheckrc | 21 - nvim/.config/nvim/.neoconf.json | 15 + nvim/.config/nvim/.stylua.toml | 7 - nvim/.config/nvim/.styluaignore | 1 - nvim/.config/nvim/.typos.toml | 6 - nvim/.config/nvim/LICENSE | 875 +++-------- nvim/.config/nvim/README.md | 4 + nvim/.config/nvim/config.ld | 7 - nvim/.config/nvim/init.lua | 25 +- nvim/.config/nvim/lazy-lock.json | 80 +- nvim/.config/nvim/lazyvim.json | 9 + nvim/.config/nvim/lua/astronvim/autocmds.lua | 254 --- nvim/.config/nvim/lua/astronvim/bootstrap.lua | 131 -- nvim/.config/nvim/lua/astronvim/health.lua | 60 - .../.config/nvim/lua/astronvim/icons/nerd_font.lua | 48 - nvim/.config/nvim/lua/astronvim/icons/text.lua | 40 - nvim/.config/nvim/lua/astronvim/lazy.lua | 44 - nvim/.config/nvim/lua/astronvim/mappings.lua | 435 ------ nvim/.config/nvim/lua/astronvim/options.lua | 70 - nvim/.config/nvim/lua/astronvim/utils/buffer.lua | 178 --- nvim/.config/nvim/lua/astronvim/utils/ffi.lua | 20 - nvim/.config/nvim/lua/astronvim/utils/git.lua | 180 --- nvim/.config/nvim/lua/astronvim/utils/init.lua | 286 ---- nvim/.config/nvim/lua/astronvim/utils/lsp.lua | 418 ----- nvim/.config/nvim/lua/astronvim/utils/mason.lua | 119 -- nvim/.config/nvim/lua/astronvim/utils/status.lua | 1637 -------------------- nvim/.config/nvim/lua/astronvim/utils/ui.lua | 222 --- nvim/.config/nvim/lua/astronvim/utils/updater.lua | 318 ---- nvim/.config/nvim/lua/config/autocmds.lua | 3 + nvim/.config/nvim/lua/config/keymaps.lua | 36 + nvim/.config/nvim/lua/config/lazy.lua | 46 + nvim/.config/nvim/lua/config/options.lua | 7 + nvim/.config/nvim/lua/lazy_snapshot.lua | 51 - nvim/.config/nvim/lua/plugins/alpha.lua | 37 - nvim/.config/nvim/lua/plugins/cmp.lua | 103 -- nvim/.config/nvim/lua/plugins/competitest.lua | 136 ++ nvim/.config/nvim/lua/plugins/configs/alpha.lua | 13 - .../nvim/lua/plugins/configs/guess-indent.lua | 4 - nvim/.config/nvim/lua/plugins/configs/heirline.lua | 119 -- .../.config/nvim/lua/plugins/configs/lspconfig.lua | 36 - nvim/.config/nvim/lua/plugins/configs/lspkind.lua | 4 - nvim/.config/nvim/lua/plugins/configs/luasnip.lua | 4 - .../nvim/lua/plugins/configs/mason-lspconfig.lua | 4 - .../nvim/lua/plugins/configs/mason-null-ls.lua | 5 - .../nvim/lua/plugins/configs/mason-nvim-dap.lua | 5 - nvim/.config/nvim/lua/plugins/configs/mason.lua | 20 - nvim/.config/nvim/lua/plugins/configs/notify.lua | 7 - .../nvim/lua/plugins/configs/nvim-autopairs.lua | 10 - .../nvim/lua/plugins/configs/nvim-dap-ui.lua | 7 - .../nvim/lua/plugins/configs/nvim-treesitter.lua | 1 - .../nvim/lua/plugins/configs/nvim-web-devicons.lua | 5 - .../.config/nvim/lua/plugins/configs/telescope.lua | 9 - .../.config/nvim/lua/plugins/configs/which-key.lua | 4 - nvim/.config/nvim/lua/plugins/core.lua | 110 -- nvim/.config/nvim/lua/plugins/dap.lua | 18 - nvim/.config/nvim/lua/plugins/disabled.lua | 10 + nvim/.config/nvim/lua/plugins/example.lua | 373 +++++ nvim/.config/nvim/lua/plugins/git.lua | 15 - nvim/.config/nvim/lua/plugins/heirline.lua | 91 -- nvim/.config/nvim/lua/plugins/lsp.lua | 72 - nvim/.config/nvim/lua/plugins/mason.lua | 25 - nvim/.config/nvim/lua/plugins/neo-tree.lua | 126 -- nvim/.config/nvim/lua/plugins/telescope.lua | 42 - nvim/.config/nvim/lua/plugins/treesitter.lua | 32 - nvim/.config/nvim/lua/plugins/ui.lua | 124 -- .../nvim/lua/resession/extensions/astronvim.lua | 32 - nvim/.config/nvim/lua/user | 1 - nvim/.config/nvim/stylua.toml | 3 + scripts/.scripts/posture.sh | 8 + zsh/.zshrc | 9 +- 76 files changed, 1282 insertions(+), 6693 deletions(-) create mode 100644 nvim/.config/nvim/.gitignore delete mode 100644 nvim/.config/nvim/.luacheckrc create mode 100644 nvim/.config/nvim/.neoconf.json delete mode 100644 nvim/.config/nvim/.stylua.toml delete mode 100644 nvim/.config/nvim/.styluaignore delete mode 100644 nvim/.config/nvim/.typos.toml create mode 100644 nvim/.config/nvim/README.md delete mode 100644 nvim/.config/nvim/config.ld create mode 100644 nvim/.config/nvim/lazyvim.json delete mode 100644 nvim/.config/nvim/lua/astronvim/autocmds.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/bootstrap.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/health.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/icons/nerd_font.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/icons/text.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/lazy.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/mappings.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/options.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/buffer.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/ffi.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/git.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/init.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/lsp.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/mason.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/status.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/ui.lua delete mode 100644 nvim/.config/nvim/lua/astronvim/utils/updater.lua create mode 100644 nvim/.config/nvim/lua/config/autocmds.lua create mode 100644 nvim/.config/nvim/lua/config/keymaps.lua create mode 100644 nvim/.config/nvim/lua/config/lazy.lua create mode 100644 nvim/.config/nvim/lua/config/options.lua delete mode 100644 nvim/.config/nvim/lua/lazy_snapshot.lua delete mode 100644 nvim/.config/nvim/lua/plugins/alpha.lua delete mode 100644 nvim/.config/nvim/lua/plugins/cmp.lua create mode 100644 nvim/.config/nvim/lua/plugins/competitest.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/alpha.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/guess-indent.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/heirline.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/lspconfig.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/lspkind.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/luasnip.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/mason-lspconfig.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/mason-null-ls.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/mason-nvim-dap.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/mason.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/notify.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/nvim-autopairs.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/nvim-dap-ui.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/nvim-treesitter.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/nvim-web-devicons.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/telescope.lua delete mode 100644 nvim/.config/nvim/lua/plugins/configs/which-key.lua delete mode 100644 nvim/.config/nvim/lua/plugins/core.lua delete mode 100644 nvim/.config/nvim/lua/plugins/dap.lua create mode 100644 nvim/.config/nvim/lua/plugins/disabled.lua create mode 100644 nvim/.config/nvim/lua/plugins/example.lua delete mode 100644 nvim/.config/nvim/lua/plugins/git.lua delete mode 100644 nvim/.config/nvim/lua/plugins/heirline.lua delete mode 100644 nvim/.config/nvim/lua/plugins/lsp.lua delete mode 100644 nvim/.config/nvim/lua/plugins/mason.lua delete mode 100644 nvim/.config/nvim/lua/plugins/neo-tree.lua delete mode 100644 nvim/.config/nvim/lua/plugins/telescope.lua delete mode 100644 nvim/.config/nvim/lua/plugins/treesitter.lua delete mode 100644 nvim/.config/nvim/lua/plugins/ui.lua delete mode 100644 nvim/.config/nvim/lua/resession/extensions/astronvim.lua delete mode 160000 nvim/.config/nvim/lua/user create mode 100644 nvim/.config/nvim/stylua.toml create mode 100755 scripts/.scripts/posture.sh diff --git a/aliases/.aliases/aliases b/aliases/.aliases/aliases index 65904a9..d917cb4 100644 --- a/aliases/.aliases/aliases +++ b/aliases/.aliases/aliases @@ -28,7 +28,6 @@ alias att="arcolinux-tweak-tool" alias avs="arcolinux-vbox-share" alias awa="arcolinux-welcome-app" alias big="expac -H M '%m\t%n' | sort -h | nl" -alias big="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB alias bls="betterlockscreen -u /usr/share/backgrounds/arcolinux/" alias book='/home/omar/.scripts/books.sh' alias btrfsfs="sudo btrfs filesystem df /" @@ -128,7 +127,6 @@ alias paruskip='paru -S --mflags --skipinteg' alias pause='playerctl -p spotify pause' alias pdw='pwd' alias personal='cp -Rf /personal/* ~' -alias pipes='cd pipes.sh;./pipes.sh';cd alias pksyua="paru -Syu --noconfirm" alias play='playerctl -p spotify play' alias please='sudo' diff --git a/awesome/.config/awesome/picom.conf b/awesome/.config/awesome/picom.conf index 6b559e5..61ad968 100644 --- a/awesome/.config/awesome/picom.conf +++ b/awesome/.config/awesome/picom.conf @@ -173,7 +173,7 @@ focus-exclude = [ "class_g = 'Cairo-clock'" ]; # #opacity-rule = [ "80:class_g = 'Alacritty'" ] opacity-rule = [ - "100:class_g = 'kitty'", + "90:class_g = 'kitty'", "90:class_g = 'alacritty'", ]; @@ -182,10 +182,24 @@ opacity-rule = [ # Background-Blurring # ################################# + +# Exclude conditions for background blur. +# blur-background-exclude = [] +blur-background-exclude = [ + "window_type = 'menu'"; + "window_type = 'dropdown_menu'"; + "window_type = 'popup_menu'"; + "window_type = 'tooltip'"; + "window_type = 'dock'", + "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c" +]; + blur: { method = "dual_kawase"; strength = 4; + for_window = ["class_g = 'Alacritty'"]; }; # Parameters for background blurring, see the *BLUR* section for more information. @@ -220,13 +234,8 @@ blur: blur-kern = "3x3box"; -# Exclude conditions for background blur. -# blur-background-exclude = [] -blur-background-exclude = [ - "window_type = 'dock'", - "window_type = 'desktop'", - "_GTK_FRAME_EXTENTS@:c" -]; + + ################################# # General Settings # @@ -445,9 +454,10 @@ log-level = "warn"; # wintypes: { - tooltip = { fade = true; shadow = true; opacity = 1.0; focus = true; full-shadow = false; }; - dock = { shadow = false; } - dnd = { shadow = false; } - popup_menu = { opacity = 1.0; } - dropdown_menu = { opacity = 1.0; } + # normal { blur-background = true; }; + # tooltip = { fade = true; shadow = true; opacity = 1.0; focus = true; full-shadow = false; }; + dock = { shadow = false; }; + dnd = { shadow = false; }; + # popup_menu = { opacity = 1.0; } + # dropdown_menu = { opacity = 1.0; } }; diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua index 734634c..16fa644 100644 --- a/awesome/.config/awesome/rc.lua +++ b/awesome/.config/awesome/rc.lua @@ -115,7 +115,7 @@ local editorgui = "neovide" local filemanager = "pcmanfm" local mailclient = "mailspring" local mediaplayer = "spotify" -local terminal = "kitty" +local terminal = "alacritty" local virtualmachine = "virtualbox" -- awesome variables diff --git a/awesome/.config/awesome/themes/powerarrow-black/theme.lua b/awesome/.config/awesome/themes/powerarrow-black/theme.lua index 579e767..f64f608 100644 --- a/awesome/.config/awesome/themes/powerarrow-black/theme.lua +++ b/awesome/.config/awesome/themes/powerarrow-black/theme.lua @@ -5,368 +5,384 @@ --]] -local gears = require("gears") -local lain = require("lain") -local awful = require("awful") -local wibox = require("wibox") - -local math, string, os = math, string, os -local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility - -local theme = {} -theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/powerarrow-dark" -theme.font = "Source code pro bold 12" -theme.taglist_font = "Source code pro bold 12" -theme.fg_normal = "#ffffff" -- Not focused windows text color -theme.fg_blue = "#000000" -- Mlo4 lazma -theme.fg_magenta = "#FBE9E7" -- taglist color and mem and cpu -theme.fg_focus = "#6200C4" -theme.fg_urgent = "#b74822" -theme.bg_normal = "#000000" -- Bar color -theme.bg_focus = "#717171" -- taglist focused bg color -theme.bg_urgent = "#3F3F3F" -theme.taglist_fg_focus = "#ffffff" -theme.tasklist_bg_focus = "#3f3f3f" -theme.tasklist_fg_focus = "#eeeeee" -theme.border_width = 2 -theme.border_normal = "#000000" -theme.border_focus = "#f90057" -theme.border_marked = "#000000" -theme.titlebar_bg_focus = "#3F3F3F" -theme.titlebar_bg_normal = "#3F3F3F" -theme.titlebar_bg_focus = theme.bg_focus -theme.titlebar_bg_normal = theme.bg_normal -theme.titlebar_fg_focus = theme.fg_focus -theme.menu_height = 20 -theme.menu_width = 140 -theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" -theme.awesome_icon = theme.dir .. "/icons/awesome.png" -theme.layout_tile = theme.dir .. "/icons/tile.png" -theme.layout_tileleft = theme.dir .. "/icons/tileleft.png" -theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png" -theme.layout_tiletop = theme.dir .. "/icons/tiletop.png" -theme.layout_fairv = theme.dir .. "/icons/fairv.png" -theme.layout_fairh = theme.dir .. "/icons/fairh.png" -theme.layout_spiral = theme.dir .. "/icons/spiral.png" -theme.layout_dwindle = theme.dir .. "/icons/dwindle.png" -theme.layout_max = theme.dir .. "/icons/max.png" -theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png" -theme.layout_magnifier = theme.dir .. "/icons/magnifier.png" -theme.layout_floating = theme.dir .. "/icons/floating.png" -theme.widget_ac = theme.dir .. "/icons/ac.png" -theme.widget_mem = theme.dir .. "/icons/mem.png" -theme.widget_cpu = theme.dir .. "/icons/cpu.png" -theme.widget_temp = theme.dir .. "/icons/temp.png" -theme.widget_net = theme.dir .. "/icons/net.png" -theme.widget_hdd = theme.dir .. "/icons/hdd.png" -theme.widget_music = theme.dir .. "/icons/note.png" -theme.widget_music_on = theme.dir .. "/icons/note.png" -theme.widget_music_pause = theme.dir .. "/icons/pause.png" -theme.widget_music_stop = theme.dir .. "/icons/stop.png" -theme.widget_vol = theme.dir .. "/icons/vol.png" -theme.widget_vol_low = theme.dir .. "/icons/vol_low.png" -theme.widget_vol_no = theme.dir .. "/icons/vol_no.png" -theme.widget_vol_mute = theme.dir .. "/icons/vol_mute.png" -theme.widget_mail = theme.dir .. "/icons/mail.png" -theme.widget_mail_on = theme.dir .. "/icons/mail_on.png" -theme.widget_task = theme.dir .. "/icons/task.png" -theme.widget_scissors = theme.dir .. "/icons/scissors.png" -theme.widget_weather = theme.dir .. "/icons/dish.png" -theme.widget_arch_logo = theme.dir .. "/icons/archlinux.png" -theme.tasklist_plain_task_name = false -theme.tasklist_disable_task_name = false -theme.tasklist_disable_icon = false -theme.useless_gap = 3 -theme.titlebar_close_button_focus = theme.dir .. "/icons/titlebar/close_focus.png" -theme.titlebar_close_button_normal = theme.dir .. "/icons/titlebar/close_normal.png" -theme.titlebar_ontop_button_focus_active = theme.dir .. "/icons/titlebar/ontop_focus_active.png" -theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png" -theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png" -theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png" -theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png" -theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png" -theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png" -theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png" -theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png" -theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png" -theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png" -theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png" -theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png" -theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png" -theme.titlebar_maximized_button_focus_inactive = theme.dir .. "/icons/titlebar/maximized_focus_inactive.png" +local gears = require("gears") +local lain = require("lain") +local awful = require("awful") +local wibox = require("wibox") + +local math, string, os = math, string, os +local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility + +local theme = {} +theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/powerarrow-dark" +theme.font = "Source code pro bold 12" +theme.taglist_font = "Source code pro bold 12" +theme.fg_normal = "#ffffff" -- Not focused windows text color +theme.fg_blue = "#000000" -- Mlo4 lazma +theme.fg_magenta = "#FBE9E7" -- taglist color and mem and cpu +theme.fg_focus = "#6200C4" +theme.fg_urgent = "#b74822" +theme.bg_normal = "#000000" -- Bar color +theme.bg_focus = "#717171" -- taglist focused bg color +theme.bg_urgent = "#3F3F3F" +theme.taglist_fg_focus = "#ffffff" +theme.tasklist_bg_focus = "#3f3f3f" +theme.tasklist_fg_focus = "#eeeeee" +theme.border_width = 2 +theme.border_normal = "#000000" +theme.border_focus = "#f90057" +theme.border_marked = "#000000" +theme.titlebar_bg_focus = "#3F3F3F" +theme.titlebar_bg_normal = "#3F3F3F" +theme.titlebar_bg_focus = theme.bg_focus +theme.titlebar_bg_normal = theme.bg_normal +theme.titlebar_fg_focus = theme.fg_focus +theme.menu_height = 20 +theme.menu_width = 140 +theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png" +theme.awesome_icon = theme.dir .. "/icons/awesome.png" +theme.layout_tile = theme.dir .. "/icons/tile.png" +theme.layout_tileleft = theme.dir .. "/icons/tileleft.png" +theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png" +theme.layout_tiletop = theme.dir .. "/icons/tiletop.png" +theme.layout_fairv = theme.dir .. "/icons/fairv.png" +theme.layout_fairh = theme.dir .. "/icons/fairh.png" +theme.layout_spiral = theme.dir .. "/icons/spiral.png" +theme.layout_dwindle = theme.dir .. "/icons/dwindle.png" +theme.layout_max = theme.dir .. "/icons/max.png" +theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png" +theme.layout_magnifier = theme.dir .. "/icons/magnifier.png" +theme.layout_floating = theme.dir .. "/icons/floating.png" +theme.widget_ac = theme.dir .. "/icons/ac.png" +theme.widget_mem = theme.dir .. "/icons/mem.png" +theme.widget_cpu = theme.dir .. "/icons/cpu.png" +theme.widget_temp = theme.dir .. "/icons/temp.png" +theme.widget_net = theme.dir .. "/icons/net.png" +theme.widget_hdd = theme.dir .. "/icons/hdd.png" +theme.widget_music = theme.dir .. "/icons/note.png" +theme.widget_music_on = theme.dir .. "/icons/note.png" +theme.widget_music_pause = theme.dir .. "/icons/pause.png" +theme.widget_music_stop = theme.dir .. "/icons/stop.png" +theme.widget_vol = theme.dir .. "/icons/vol.png" +theme.widget_vol_low = theme.dir .. "/icons/vol_low.png" +theme.widget_vol_no = theme.dir .. "/icons/vol_no.png" +theme.widget_vol_mute = theme.dir .. "/icons/vol_mute.png" +theme.widget_mail = theme.dir .. "/icons/mail.png" +theme.widget_mail_on = theme.dir .. "/icons/mail_on.png" +theme.widget_task = theme.dir .. "/icons/task.png" +theme.widget_scissors = theme.dir .. "/icons/scissors.png" +theme.widget_weather = theme.dir .. "/icons/dish.png" +theme.widget_arch_logo = theme.dir .. "/icons/archlinux.png" +theme.tasklist_plain_task_name = false +theme.tasklist_disable_task_name = false +theme.tasklist_disable_icon = false +theme.useless_gap = 3 +theme.titlebar_close_button_focus = theme.dir .. "/icons/titlebar/close_focus.png" +theme.titlebar_close_button_normal = theme.dir .. "/icons/titlebar/close_normal.png" +theme.titlebar_ontop_button_focus_active = theme.dir .. "/icons/titlebar/ontop_focus_active.png" +theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png" +theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png" +theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png" +theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png" +theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png" +theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_inactive = theme.dir .. "/icons/titlebar/maximized_focus_inactive.png" theme.titlebar_maximized_button_normal_inactive = theme.dir .. "/icons/titlebar/maximized_normal_inactive.png" -theme.bg_systray = "#000000" -theme.clock_fontfg = theme.fg_magenta -theme.clock_font = "DejaVu Sans Mono Bold 12" -theme.arch_fontfg = theme.fg_magenta -theme.arch_font = "DejaVu Sans Mono Bold 12" - -local markup = lain.util.markup -local separators = lain.util.separators +theme.bg_systray = "#000000" +theme.clock_fontfg = theme.fg_magenta +theme.clock_font = "DejaVu Sans Mono Bold 12" +theme.arch_fontfg = theme.fg_magenta +theme.arch_font = "DejaVu Sans Mono Bold 12" +local markup = lain.util.markup +local separators = lain.util.separators -- Textclock local clockicon = wibox.widget.imagebox(theme.widget_clock) -local clock = awful.widget.watch( - "date +'%A %d %B %I:%M%p'", 60, - function(widget, stdout) - widget:set_markup(" " .. markup.fontfg(theme.clock_font, theme.clock_fontfg, stdout)) - end -) +local clock = awful.widget.watch("date +'%A %d %B %I:%M%p'", 60, function(widget, stdout) + widget:set_markup(" " .. markup.fontfg(theme.clock_font, theme.clock_fontfg, stdout)) +end) -- Calendar theme.cal = lain.widget.cal({ - attach_to = { clock }, - notification_preset = { - font = "Roboto Mono Medium 10", - fg = theme.border_focus, - bg = theme.bg_normal - } + attach_to = { clock }, + notification_preset = { + font = "Roboto Mono Medium 10", + fg = theme.border_focus, + bg = theme.bg_normal, + }, }) -- ALSA volume theme.volume = lain.widget.alsabar({ - --togglechannel = "IEC958,3", - notification_preset = { font = theme.font, fg = theme.fg_normal }, + --togglechannel = "IEC958,3", + notification_preset = { font = theme.font, fg = theme.fg_normal }, }) -- MPD local musicplr = "urxvt -title Music -g 130x34-320+16 -e ncmpcpp" local mpdicon = wibox.widget.imagebox(theme.widget_music) mpdicon:buttons(my_table.join( - awful.button({ modkey }, 1, function() awful.spawn.with_shell(musicplr) end), - awful.button({}, 2, function() - awful.spawn.with_shell("mpc toggle") - theme.mpd.update() - end), - awful.button({ modkey }, 3, function() awful.spawn.with_shell("pkill ncmpcpp") end), - awful.button({}, 3, function() - awful.spawn.with_shell("mpc stop") - theme.mpd.update() - end))) + awful.button({ modkey }, 1, function() + awful.spawn.with_shell(musicplr) + end), + awful.button({}, 2, function() + awful.spawn.with_shell("mpc toggle") + theme.mpd.update() + end), + awful.button({ modkey }, 3, function() + awful.spawn.with_shell("pkill ncmpcpp") + end), + awful.button({}, 3, function() + awful.spawn.with_shell("mpc stop") + theme.mpd.update() + end) +)) theme.mpd = lain.widget.mpd({ - settings = function() - if mpd_now.state == "play" then - artist = " " .. mpd_now.artist .. " " - title = mpd_now.title .. " " - mpdicon:set_image(theme.widget_music_on) - widget:set_markup(markup.font(theme.font, markup("#FFFFFF", artist) .. " " .. title)) - elseif mpd_now.state == "pause" then - widget:set_markup(markup.font(theme.font, " mpd paused ")) - mpdicon:set_image(theme.widget_music_pause) - else - widget:set_text("") - mpdicon:set_image(theme.widget_music) - end - end + settings = function() + if mpd_now.state == "play" then + artist = " " .. mpd_now.artist .. " " + title = mpd_now.title .. " " + mpdicon:set_image(theme.widget_music_on) + widget:set_markup(markup.font(theme.font, markup("#FFFFFF", artist) .. " " .. title)) + elseif mpd_now.state == "pause" then + widget:set_markup(markup.font(theme.font, " mpd paused ")) + mpdicon:set_image(theme.widget_music_pause) + else + widget:set_text("") + mpdicon:set_image(theme.widget_music) + end + end, }) -- MEM local memicon = wibox.widget.imagebox(theme.widget_mem) local mem = lain.widget.mem({ - settings = function() - widget:set_markup(markup.font(theme.font, "  " .. mem_now.used .. "MB ")) - end + settings = function() + widget:set_markup(markup.font(theme.font, "  " .. mem_now.used .. "MB ")) + end, }) - -- CPU local cpuicon = wibox.widget.imagebox(theme.widget_cpu) local cpu = lain.widget.cpu({ - settings = function() - widget:set_markup(markup.font(theme.font, " " .. cpu_now.usage .. "% ")) - end + settings = function() + widget:set_markup(markup.font(theme.font, " " .. cpu_now.usage .. "% ")) + end, }) -- ALSA volume local volicon = wibox.widget.imagebox(theme.widget_vol) theme.volume = lain.widget.alsa({ - settings = function() - if volume_now.status == "off" then - volicon:set_image(theme.widget_vol_mute) - elseif tonumber(volume_now.level) == 0 then - volicon:set_image(theme.widget_vol_no) - elseif tonumber(volume_now.level) <= 50 then - volicon:set_image(theme.widget_vol_low) - else - volicon:set_image(theme.widget_vol) - end - - widget:set_markup(markup.font(theme.font, " " .. volume_now.level .. "% ")) - end + settings = function() + if volume_now.status == "off" then + volicon:set_image(theme.widget_vol_mute) + elseif tonumber(volume_now.level) == 0 then + volicon:set_image(theme.widget_vol_no) + elseif tonumber(volume_now.level) <= 50 then + volicon:set_image(theme.widget_vol_low) + else + volicon:set_image(theme.widget_vol) + end + + widget:set_markup(markup.font(theme.font, " " .. volume_now.level .. "% ")) + end, }) -- Separators local arrow = separators.arrow_left function theme.powerline_rl(cr, width, height) - local arrow_depth, offset = height / 2, 0 - - -- Avoid going out of the (potential) clip area - if arrow_depth < 0 then - width = width + 2 * arrow_depth - offset = -arrow_depth - end - - cr:move_to(offset + arrow_depth, 0) - cr:line_to(offset + width, 0) - cr:line_to(offset + width - arrow_depth, height / 2) - cr:line_to(offset + width, height) - cr:line_to(offset + arrow_depth, height) - cr:line_to(offset, height / 2) - - cr:close_path() + local arrow_depth, offset = height / 2, 0 + + -- Avoid going out of the (potential) clip area + if arrow_depth < 0 then + width = width + 2 * arrow_depth + offset = -arrow_depth + end + + cr:move_to(offset + arrow_depth, 0) + cr:line_to(offset + width, 0) + cr:line_to(offset + width - arrow_depth, height / 2) + cr:line_to(offset + width, height) + cr:line_to(offset + arrow_depth, height) + cr:line_to(offset, height / 2) + + cr:close_path() end local function pl(widget, bgcolor, padding) - return wibox.container.background(wibox.container.margin(widget, 16, 16), bgcolor, theme.powerline_rl) + return wibox.container.background(wibox.container.margin(widget, 16, 16), bgcolor, theme.powerline_rl) end function theme.at_screen_connect(s) - -- Quake application - -- s.quake = lain.util.quake({ app = awful.util.terminal }) - s.quake = lain.util.quake({ app = "termite", height = 0.50, argname = "--name %s" }) - - -- If wallpaper is a function, call it with the screen - local wallpaper = theme.wallpaper - if type(wallpaper) == "function" then - wallpaper = wallpaper(s) - end - gears.wallpaper.maximized(wallpaper, s, true) - - -- All tags open with layout 1 - awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) - - -- Create a promptbox for each screen - s.mypromptbox = awful.widget.prompt() - -- Create an imagebox widget which will contains an icon indicating which layout we're using. - -- We need one layoutbox per screen. - s.mylayoutbox = awful.widget.layoutbox(s) - s.mylayoutbox:buttons(my_table.join( - awful.button({}, 1, function() awful.layout.inc(1) end), - awful.button({}, 3, function() awful.layout.inc(-1) end), - awful.button({}, 4, function() awful.layout.inc(1) end), - awful.button({}, 5, function() awful.layout.inc(-1) end))) - -- Create a taglist widget - s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) - - -- Create the wibox - local function custom_shape(cr, width, height) - gears.shape.rounded_rect(cr, width, height, 0) - end - - s.mywibox = awful.wibar({ - position = "top", - screen = s, - shape = custom_shape, - height = 23, - width = 1920, - border_width = 0, - bg = theme.bg_normal, - fg = theme.fg_magenta - }) - - - -- s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons, { bg_normal = theme.bg_systray, bg_focus = theme.bg_focus}) - s.mytasklist = awful.widget.tasklist { - screen = s, - filter = awful.widget.tasklist.filter.currenttags, - buttons = tasklist_buttons, - style = { - shape_border_width = 0, - shape_border_color = "#777777", - shape = gears.shape.rectangle, - }, - layout = { - spacing = 0, - spacing_widget = { - { - forced_width = 0, - shape = gears.shape.circle, - widget = wibox.widget.separator - }, - valign = 'center', - halign = 'center', - widget = wibox.container.place, - }, - layout = wibox.layout.flex.horizontal - }, - -- Notice that there is *NO* wibox.wibox prefix, it is a template, - -- not a widget instance. - widget_template = { - { - { - { - { - id = 'icon_role', - widget = wibox.widget.imagebox, - }, - margins = 0, - widget = wibox.container.margin, - }, - { - id = 'text_role', - widget = wibox.widget.textbox, - }, - layout = wibox.layout.fixed.horizontal, - }, - left = 10, - right = 10, - widget = wibox.container.margin - }, - id = 'background_role', - widget = wibox.container.background, - }, - } - - s.mylayoutbox = awful.widget.layoutbox(s) - s.mylayoutbox:buttons(my_table.join( - awful.button({}, 1, function() awful.layout.inc(1) end), - awful.button({}, 3, function() awful.layout.inc(-1) end), - awful.button({}, 4, function() awful.layout.inc(1) end), - awful.button({}, 5, function() awful.layout.inc(-1) end))) - - - tbox_separator = wibox.widget.textbox(" ") - - local vert_sep = wibox.widget { - widget = wibox.widget.separator, - orientation = "horizontal", - forced_width = 6, - color = theme.fg_normal, - } - - local allah = wibox.widget { - markup = "", - widget = wibox.widget.textbox, - color = "#ffffff", - font = "DejaVu Sans Mono Bold 10", - } - - -- Add widgets to the wibox - s.mywibox:setup { - layout = wibox.layout.align.horizontal, - { -- Left widgets - layout = wibox.layout.fixed.horizontal, - --spr, - wibox.container.background(wibox.container.margin(allah, 10, 10, 1, 1)), - -- s.mypromptbox, - wibox.container.background(wibox.container.margin(s.mytaglist, 0, 0, 2, 2)), - tbox_separator, - }, - s.mytasklist, -- Middle widget - { -- Right widgets - layout = wibox.layout.fixed.horizontal, - tbox_separator, - wibox.widget { theme.volume.widget, layout = wibox.layout.align.horizontal }, - vert_sep, - wibox.widget { mem.widget, layout = wibox.layout.align.horizontal }, - vert_sep, - wibox.widget { cpu.widget, layout = wibox.layout.align.horizontal }, - wibox.container.background(wibox.container.margin(clock, 15, 5, 2, 2)), - wibox.widget.systray(), - }, - } + -- Quake application + -- s.quake = lain.util.quake({ app = awful.util.terminal }) + s.quake = lain.util.quake({ app = "termite", height = 0.50, argname = "--name %s" }) + + -- If wallpaper is a function, call it with the screen + local wallpaper = theme.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + + -- All tags open with layout 1 + awful.tag(awful.util.tagnames, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contains an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function() + awful.layout.inc(1) + end), + awful.button({}, 3, function() + awful.layout.inc(-1) + end), + awful.button({}, 4, function() + awful.layout.inc(1) + end), + awful.button({}, 5, function() + awful.layout.inc(-1) + end) + )) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons) + + -- Create the wibox + local function custom_shape(cr, width, height) + gears.shape.rounded_rect(cr, width, height, 0) + end + + s.mywibox = awful.wibar({ + position = "top", + screen = s, + shape = custom_shape, + height = 23, + width = 1920, + border_width = 0, + bg = theme.bg_normal, + fg = theme.fg_magenta, + }) + + -- s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons, { bg_normal = theme.bg_systray, bg_focus = theme.bg_focus}) + s.mytasklist = awful.widget.tasklist({ + screen = s, + filter = awful.widget.tasklist.filter.currenttags, + buttons = tasklist_buttons, + style = { + shape_border_width = 0, + shape_border_color = "#777777", + shape = gears.shape.rectangle, + }, + layout = { + spacing = 0, + spacing_widget = { + { + forced_width = 0, + shape = gears.shape.circle, + widget = wibox.widget.separator, + }, + valign = "center", + halign = "center", + widget = wibox.container.place, + }, + layout = wibox.layout.flex.horizontal, + }, + -- Notice that there is *NO* wibox.wibox prefix, it is a template, + -- not a widget instance. + widget_template = { + { + { + { + { + id = "icon_role", + widget = wibox.widget.imagebox, + }, + margins = 0, + widget = wibox.container.margin, + }, + { + id = "text_role", + widget = wibox.widget.textbox, + }, + layout = wibox.layout.fixed.horizontal, + }, + left = 10, + right = 10, + widget = wibox.container.margin, + }, + id = "background_role", + widget = wibox.container.background, + }, + }) + + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(my_table.join( + awful.button({}, 1, function() + awful.layout.inc(1) + end), + awful.button({}, 3, function() + awful.layout.inc(-1) + end), + awful.button({}, 4, function() + awful.layout.inc(1) + end), + awful.button({}, 5, function() + awful.layout.inc(-1) + end) + )) + + tbox_separator = wibox.widget.textbox(" ") + + local vert_sep = wibox.widget({ + widget = wibox.widget.separator, + orientation = "horizontal", + forced_width = 6, + color = theme.fg_normal, + }) + + local allah = wibox.widget({ + markup = "", + widget = wibox.widget.textbox, + color = "#ffffff", + font = "DejaVu Sans Mono Bold 10", + }) + + -- Add widgets to the wibox + s.mywibox:setup({ + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + --spr, + wibox.container.background(wibox.container.margin(allah, 10, 10, 1, 1)), + -- s.mypromptbox, + wibox.container.background(wibox.container.margin(s.mytaglist, 0, 0, 2, 2)), + tbox_separator, + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + tbox_separator, + wibox.widget({ theme.volume.widget, layout = wibox.layout.align.horizontal }), + vert_sep, + wibox.widget({ mem.widget, layout = wibox.layout.align.horizontal }), + vert_sep, + wibox.widget({ cpu.widget, layout = wibox.layout.align.horizontal }), + wibox.container.background(wibox.container.margin(clock, 15, 5, 2, 2)), + wibox.widget.systray(), + }, + }) end return theme diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf index 9593550..0de3ebd 100644 --- a/kitty/.config/kitty/kitty.conf +++ b/kitty/.config/kitty/kitty.conf @@ -944,7 +944,7 @@ inactive_tab_font_style normal #: The foreground and background colors # background_opacity 1.0 -background_opacity 0.90 +background_opacity 0.50 # background_opacity 1.00 #: The opacity of the background. A number between 0 and 1, where 1 is diff --git a/nvim/.config/nvim/.gitignore b/nvim/.config/nvim/.gitignore new file mode 100644 index 0000000..cc5457a --- /dev/null +++ b/nvim/.config/nvim/.gitignore @@ -0,0 +1,8 @@ +tt.* +.tests +doc/tags +debug +.repro +foo.* +*.log +data diff --git a/nvim/.config/nvim/.luacheckrc b/nvim/.config/nvim/.luacheckrc deleted file mode 100644 index 809581e..0000000 --- a/nvim/.config/nvim/.luacheckrc +++ /dev/null @@ -1,21 +0,0 @@ --- Global objects -globals = { - "PACKER_BOOTSTRAP", - "astronvim", - "astronvim_installation", - "vim", - "bit", - "C", - "packer_plugins", -} - --- Rerun tests only if their modification time changed -cache = true - --- Don't report unused self arguments of methods -self = false - -ignore = { - "631", -- max_line_length - "212/_.*", -- unused argument, for vars with "_" prefix -} diff --git a/nvim/.config/nvim/.neoconf.json b/nvim/.config/nvim/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/nvim/.config/nvim/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/nvim/.config/nvim/.stylua.toml b/nvim/.config/nvim/.stylua.toml deleted file mode 100644 index bfcffff..0000000 --- a/nvim/.config/nvim/.stylua.toml +++ /dev/null @@ -1,7 +0,0 @@ -column_width = 120 -line_endings = "Unix" -indent_type = "Spaces" -indent_width = 2 -quote_style = "AutoPreferDouble" -call_parentheses = "None" -collapse_simple_statement = "Always" diff --git a/nvim/.config/nvim/.styluaignore b/nvim/.config/nvim/.styluaignore deleted file mode 100644 index 52ccbc0..0000000 --- a/nvim/.config/nvim/.styluaignore +++ /dev/null @@ -1 +0,0 @@ -lua/lazy_snapshot.lua diff --git a/nvim/.config/nvim/.typos.toml b/nvim/.config/nvim/.typos.toml deleted file mode 100644 index f9de14e..0000000 --- a/nvim/.config/nvim/.typos.toml +++ /dev/null @@ -1,6 +0,0 @@ -# See https://github.com/crate-ci/typos/blob/master/docs/reference.md to configure typos -[default.extend-words] -enew = "enew" -fo = "fo" -[files] -extend-exclude = ["LICENSE"] diff --git a/nvim/.config/nvim/LICENSE b/nvim/.config/nvim/LICENSE index f288702..261eeb9 100644 --- a/nvim/.config/nvim/LICENSE +++ b/nvim/.config/nvim/LICENSE @@ -1,674 +1,201 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - tra