Sample Header Ad - 728x90

Unix & Linux Stack Exchange

Q&A for users of Linux, FreeBSD and other Unix-like operating systems

Latest Questions

1 votes
1 answers
42 views
Using vi :s to swap a captured word to end of line
In VI I have a series of lines like al xxe fl e ~ ] ~ stand ~ sneak ~ w ~ slit % That I'd like to look like this: al xxe ] ~ stand ~ sneak ~ w ~ slit % ~ fl e It's only 8 lines, so I'll probably do it by hand before I get an answer, but it's the principle of the thing. I've learned a lot about :s re...
In VI I have a series of lines like al xxe fl e ~ ] ~ stand ~ sneak ~ w ~ slit % That I'd like to look like this: al xxe ] ~ stand ~ sneak ~ w ~ slit % ~ fl e It's only 8 lines, so I'll probably do it by hand before I get an answer, but it's the principle of the thing. I've learned a lot about :s recently and feel like I should be able to do this. Another thing of note, I'm doing this in VSCode and some of the particulars of :s are different. This is what I'm trying to do :86,95s/(fl\w{1,2})/$ ~ \1/ Where I think $ should put me at EOL, but it just puts a $ where the pattern was matched. Thanks!
Jimbus (11 rep)
Jul 18, 2025, 12:19 AM • Last activity: Jul 18, 2025, 03:11 AM
1 votes
1 answers
70 views
Issue with `BASH_LINENO` in bash function which get debugging information
In Visual Code, on Windows 10, I'm trying to create a function for my `.sh` project (*which I run with Git Bash*), which will report errors to the console in case user, let's say, provides fewer or more parameters for a function. For this reason, I created the file `error_report.sh` with the functio...
In Visual Code, on Windows 10, I'm trying to create a function for my .sh project (*which I run with Git Bash*), which will report errors to the console in case user, let's say, provides fewer or more parameters for a function. For this reason, I created the file error_report.sh with the function ErrorReport.
#!/usr/bin/env bash

function ErrorReport()
{
    local caller_func="${FUNCNAME}"
    local caller_file="$(basename "${BASH_SOURCE}")"
    local caller_line="${BASH_LINENO}"
    local caller_code="$(sed -n "${caller_line}p" "${BASH_SOURCE}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
    printf "\nCaller: ${caller_func}()"
    printf "\nFile  : ${caller_file}"
    printf "\nLine  : ${caller_line}"
    printf "\nCode  : ${caller_code}"
}
As main file of my project, I have temporarily created the tester_copy.sh where I have the following:
#!/usr/bin/env bash

declare -g script_dir="$(cd "$(dirname "${BASH_SOURCE}")" && pwd)"

source "${script_dir}/lib/ui/window_manager.sh"
source "${script_dir}/error_report.sh"

function TestFunction()
{
    if [[ "$#" -ne 3 ]]; then
        ErrorReport
        return 1
    fi

    local arg1="$1"
    local arg2="$2"
    local arg3="$3"

    echo "arguments: $arg1, $arg2, $arg3"
}

function Main()
{
    ConsoleWindowSetup "${MMS_WINDOW_TITLE}" 40 120

    clear

    TestFunction "11111" "22222"

    read -re -p ""
}

Main "$@"
The problem is that in my console, displays Caller and File correctly, but Line and Code incorrectly. Instead of displaying Line: 28 and Code: TestFunction "11111" "22222", it displays:
Caller: Main()
File  : tester_copy.sh
Line  : 6
Code  : source "${script_dir}/error_report.sh"
But if I change my main script to:
#!/usr/bin/env bash

declare -g script_dir="$(cd "$(dirname "${BASH_SOURCE}")" && pwd)"

source "${script_dir}/lib/ui/window_manager.sh"
source "${script_dir}/error_report.sh"

function TestFunction()
{
    if [[ "$#" -ne 3 ]]; then
        ErrorReport
        return 1
    fi

    local arg1="$1"
    local arg2="$2"
    local arg3="$3"

    echo "Λήφθηκαν τα arguments: $arg1, $arg2, $arg3"
}

ConsoleWindowSetup "${MMS_WINDOW_TITLE}" 40 120
clear

TestFunction "11111" "22222"

read -re -p ""
If I take the main code outside the function Main(), then it displays correctly in the console...
Caller: main()
File  : tester_copy.sh
Line  : 28
Code  : TestFunction "11111" "22222"
Which I don't want though because ErrorReport is intended for errors inside functions. Why is this happening and how can I make it work when the error is inside a function? ##### Debugging (17/05/2025) * If I copy the whole .sh project into my Ubuntu Server it works even if the error is inside a function. * It also works using WSL. * I am almost sure that the problem happens only if I run the .sh file from Windows, by just double clicking on it. In any other case, works fine. ##### Debugging (18/05/2025) The default application on this Windows computer to open .sh files is "C:\Program Files\Git\git-bash.exe". When I open my .sh file by double-clicking, the problem I mentioned occurs. However, if I try running it by dragging the file to "C:\Program Files\Git\bin\bash.exe", "C:\Program Files\Git\bin\sh.exe" or "C:\Program Files\Git\git-bash.exe", it works fine in all three! I tried creating a shortcut with the target "C:\Program Files\Git\git-bash.exe" --cd="C:\Users\***\Desktop\PROGRAMMING\SH\sigma_sh_lib" -c "./tester_copy.sh" and it also works fine! Then I created a function to get debug shell info...
DebugShellInfo() {
    echo "================= DEBUG INFO ================="
    printf "🔹 Shell Script Name     : %s\n" "$0"
    printf "🔹 Declared Interpreter  : %s\n" "${SHELL:-}"
    printf "🔹 Bash Version          : %s\n" "${BASH_VERSION:-}"

    # FUNCNAME stack
    printf "🔹 FUNCNAME Stack        :"
    if [[ ${#FUNCNAME[@]} -eq 0 ]]; then
        echo " "
    else
        echo " ${FUNCNAME}"
        for ((i = 1; i "
    else
        echo " ${BASH_SOURCE}"
        for ((i = 1; i "
    else
        echo " ${BASH_LINENO}"
        for ((i = 1; i < ${#BASH_LINENO[@]}; i++)); do
            printf "                           %s\n" "${BASH_LINENO[i]}"
        done
    fi

    echo "=============================================="
}
Now, when I called it, I noticed the following. When it is called while the file is running by double-clicking it outputs...
================= DEBUG INFO =================
🔹 Shell Script Name     : C:\Users\***\Desktop\PROGRAMMING\SH STUFF\sigma_sh_lib\tester_copy.sh
🔹 Declared Interpreter  : /usr/bin/bash
🔹 Bash Version          : 5.2.37(1)-release
🔹 FUNCNAME Stack        : DebugShellInfo
                           MSG
                           MSG
                           Main
                           main
🔹 BASH_SOURCE Stack     : /c/Users/***/Desktop/PROGRAMMING/SH STUFF/sigma_sh_lib/lib/utils/debug_shell_info.sh
                           /c/Users/***/Desktop/PROGRAMMING/SH STUFF/sigma_sh_lib/lib/ui/msg.sh
                           /c/Users/***/Desktop/PROGRAMMING/SH STUFF/sigma_sh_lib/lib/ui/msg.sh
                           C:\Users\***\Desktop\PROGRAMMING\SH STUFF\sigma_sh_lib\tester_copy.sh
                           C:\Users\***\Desktop\PROGRAMMING\SH STUFF\sigma_sh_lib\tester_copy.sh
🔹 BASH_LINENO Stack     : 130
                           1
                           14
                           70
                           0
==============================================
But when it is called with the other ways I mentioned above, it outputs...
================= DEBUG INFO =================
🔹 Shell Script Name     : ./tester_copy.sh
🔹 Declared Interpreter  : /usr/bin/bash
🔹 Bash Version          : 5.2.37(1)-release
🔹 FUNCNAME Stack        : DebugShellInfo
                           MSG
                           MSG
                           Main
                           main
🔹 BASH_SOURCE Stack     : /c/Users/***/Desktop/PROGRAMMING/SH STUFF/sigma_sh_lib/lib/utils/debug_shell_info.sh
                           /c/Users/***/Desktop/PROGRAMMING/SH STUFF/sigma_sh_lib/lib/ui/msg.sh
                           /c/Users/***/Desktop/PROGRAMMING/SH STUFF/sigma_sh_lib/lib/ui/msg.sh
                           ./tester_copy.sh
                           ./tester_copy.sh
🔹 BASH_LINENO Stack     : 194
                           95
                           60
                           70
                           0
==============================================
Notice the differences in the "Shell Script Name" paths and in "BASH_SOURCE Stack" and "BASH_LINENO Stack" paths!!! **Note**: I moved the code of ErrorReport function into a function called MSG.
Simos Sigma (111 rep)
May 17, 2025, 09:04 AM • Last activity: May 19, 2025, 07:43 AM
5 votes
1 answers
2376 views
How to set the default application to open folders?
I'm really stuck; I want to add `Open with vs code` to the folders context menu following the same approach as for files by means of the so-called MIME; editing the file `~/.config/mimeapps.list` allows me to change default applications for different file extensions. My preferred default application...
I'm really stuck; I want to add Open with vs code to the folders context menu following the same approach as for files by means of the so-called MIME; editing the file ~/.config/mimeapps.list allows me to change default applications for different file extensions. My preferred default application is VS Code; I found inode/directory is the file type for a directory in MIME, so I added this line inode/directory=code-insiders.desktop to the file ~/.config/mimeapps.list in [Default Applications] field but Open with vs code doesn't show as I right-click on folders. I can confirm what I did makes sense by showing the output of this command gio mime inode/directory:
Default application for “inode/directory”: code-insiders.desktop
Registered applications:
	code-insiders.desktop
	org.gnome.Nautilus.desktop
	org.gnome.baobab.desktop
Recommended applications:
	code-insiders.desktop
	org.gnome.Nautilus.desktop
	org.gnome.baobab.desktop
Similarly, the output of gio mime text/plain by which the corresponding files context menu appears Open with vs option is
Default application for “text/plain”: code-insiders.desktop
Registered applications:
	code-insiders.desktop
	libreoffice-writer.desktop
	org.gnome.gedit.desktop
	vim.desktop
Recommended applications:
	code-insiders.desktop
	libreoffice-writer.desktop
	org.gnome.gedit.desktop
	vim.desktop
The default application for opening text files by right-clicking shows Open with vs but not the case for folders.
EnthusiastiC (163 rep)
Oct 28, 2022, 10:25 AM • Last activity: May 11, 2025, 05:03 AM
4 votes
1 answers
2492 views
XAUTHORITY environment value is not a clean path
I am having trouble opening VS Code from my VM running on Ubuntu 16.04. When I try to open it from the terminal, I get the error: > WARNING: XAUTHORITY environment value is not a clean path: "/some/path/.Xauthority" cannot open path of the current working directory: Permission denied I don't know mu...
I am having trouble opening VS Code from my VM running on Ubuntu 16.04. When I try to open it from the terminal, I get the error: > WARNING: XAUTHORITY environment value is not a clean path: "/some/path/.Xauthority" cannot open path of the current working directory: Permission denied I don't know much about what .Xauthority is, so unfortunately that is about all the information I can provide. The path seems legitimate, but if someone could help me out, that would be great.
pilars32 (41 rep)
Mar 24, 2020, 07:48 PM • Last activity: Apr 9, 2025, 09:04 PM
0 votes
1 answers
39 views
How to split VSCode editor as attached screenshot?
Somehow the Microsoft Visual Studio Code editor zone is split horizontally as in the screenshot that just shows a blue line without the filename. [![enter image description here][1]][1] I tried clicking the option to split editor but it doesn't show the same as the screenshot. [![enter image descrip...
Somehow the Microsoft Visual Studio Code editor zone is split horizontally as in the screenshot that just shows a blue line without the filename. enter image description here I tried clicking the option to split editor but it doesn't show the same as the screenshot. enter image description here Does someone know how to split the editor as the first screenshot that just shows a blue line without the filename?
Jack (99 rep)
Mar 12, 2025, 03:22 AM • Last activity: Mar 12, 2025, 07:31 AM
0 votes
2 answers
2359 views
installing .Net dotnet on debian
I downloaded ./dotnet-install.sh and successfully installed: $ ./dotnet-install.sh -c Current dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where: dotnet-install: - The SDK needs to be installed without user interaction and without admin righ...
I downloaded ./dotnet-install.sh and successfully installed: $ ./dotnet-install.sh -c Current dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where: dotnet-install: - The SDK needs to be installed without user interaction and without admin rights. dotnet-install: - The SDK installation doesn't need to persist across multiple CI runs. dotnet-install: To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer. dotnet-install: .NET Core SDK version 5.0.207 is already installed. dotnet-install: Adding to current process PATH: /home/tesla/.dotnet. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://docs.microsoft.com/dotnet/core/install , select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. I added path └─$ export PATH=$PATH:/home/tesla/.dotnet dotnet --version 5.0.207 I have two issues: First, everytime I restart the PC, I need to reinstall Second vs code terminal does not see dotnet --version command: "Command 'dotnet' not found, but can be installed with: sudo snap install dotnet-sdk # version 5.0.401, or sudo apt install dotnet-host See 'snap info dotnet-sdk' for additional versions. " If I set the path on vscode terminal, after re staring the vscode, it does not recognize dotnet command
Yilmaz (417 rep)
Sep 20, 2021, 07:01 AM • Last activity: Oct 25, 2024, 04:02 PM
0 votes
2 answers
811 views
vscode with jupyter with archlinux
I am trying to install and use vscode with jupyter extension for coding with python on my archlinux OS. but it does not found any kernel interpreter I installed both jupyter and python extension in vscode and tried many staff suggested on the internet, as ""enable-proposed-api": ["ms-toolsai.jupyter...

I am trying to install and use vscode with jupyter extension for coding with python on my archlinux OS. but it does not found any kernel interpreter
I installed both jupyter and python extension in vscode and tried many staff suggested on the internet, as
""enable-proposed-api": ["ms-toolsai.jupyter"]" in the argv.json
and "create environment"
the result is always the same, jupyter file is corrected opened but when i tried to select kernel, vscode keep searching.
can someone sugggest me something?
Thanks in advances, cheers!
eugenio b (41 rep)
Jul 1, 2023, 10:19 PM • Last activity: Sep 30, 2024, 08:18 AM
0 votes
0 answers
38 views
Duplicated instance of VSCodium in Awesome WM with Tyrannical
I'm using [Awesome WM](https://awesomewm.org/) (v4.3) with [Tyrannical plugin](https://github.com/Elv13/tyrannical) on Debian 12 and I observe an unexpected behavior of VSCodium. Using the following configuration (in `rc.lua` config file of Awesome WM), when I start a new instance of a software, for...
I'm using [Awesome WM](https://awesomewm.org/) (v4.3) with [Tyrannical plugin](https://github.com/Elv13/tyrannical) on Debian 12 and I observe an unexpected behavior of VSCodium. Using the following configuration (in rc.lua config file of Awesome WM), when I start a new instance of a software, for e.g. qterminal, it opens **only in the current focused tag** even if it is allowed to open in another tag. However, the behavior is different with VSCodium, i.e. when I start a new instance of VSCodium, the same instance opens in **all tags where the vscodium instance is allowed** (tags "dev" AND "tex" below). In other words, it is the **same instance** which is **duplicated in all tags**.
-- tyrannical config : app on specific tag and screen with tyrannical
tyrannical.tags = {
    {
        name        = "dev",                  -- Call the tag "dev"
        init        = true,                   -- Load the tag on startup
        inclusive   = true,                   -- Allow other instance than listed in "instance" below
        screen      = {1,2},                  -- Create this tag on screen 1 and screen 2
        layout      = awful.layout.suit.tile, -- Use the tile layout
        instance    = { --Accept the following instance
           "vscodium", "qterminal"}
    } ,
    {
        name        = "tex",                  -- Call the tag "tex"
        init        = true,                   -- Load the tag on startup
        inclusive   = true,                   -- Allow other instance than listed in "instance" below
        screen      = {1,2},                  -- Create this tag on screen 1 and screen 2
        layout      = awful.layout.suit.tile, -- Use the tile layout
        instance    = { --Accept the following instance
            "vscodium" , "qterminal"}
    },
}
**Am I missing something ?** **Any idea of why the two software behave differently and how to force VSCodium to act as qterminal does?** Here is my entire rc.lua config file of Awesome WM :
-- If LuaRocks is installed, make sure that packages installed through it are
-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
pcall(require, "luarocks.loader")

-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")

local tyrannical = require("tyrannical")

-- Load Debian menu entries
local debian = require("debian.menu")
local has_fdo, freedesktop = pcall(require, "freedesktop")

-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then
    naughty.notify({ preset = naughty.config.presets.critical,
                     title = "Oops, there were errors during startup!",
                     text = awesome.startup_errors })
end

-- Handle runtime errors after startup
do
    local in_error = false
    awesome.connect_signal("debug::error", function (err)
        -- Make sure we don't go into an endless error loop
        if in_error then return end
        in_error = true

        naughty.notify({ preset = naughty.config.presets.critical,
                         title = "Oops, an error happened!",
                         text = tostring(err) })
        in_error = false
    end)
end
-- }}}

-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_configuration_dir() .. "theme.lua")

-- This is used later as the default terminal and editor to run.
terminal = "x-terminal-emulator"
editor = os.getenv("EDITOR") or "editor"
editor_cmd = terminal .. " -e " .. editor

-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"

-- Table of layouts to cover with awful.layout.inc, order matters.
awful.layout.layouts = {
    awful.layout.suit.tile,
    awful.layout.suit.floating,
    awful.layout.suit.tile.left,
    awful.layout.suit.tile.bottom,
    awful.layout.suit.tile.top,
    --awful.layout.suit.fair,
    --awful.layout.suit.fair.horizontal,
    --awful.layout.suit.spiral,
    --awful.layout.suit.spiral.dwindle,
    awful.layout.suit.max,
    --awful.layout.suit.max.fullscreen,
    awful.layout.suit.magnifier,
    --awful.layout.suit.corner.nw,
    -- awful.layout.suit.corner.ne,
    -- awful.layout.suit.corner.sw,
    -- awful.layout.suit.corner.se,
}
-- }}}


-- {{{ Menu
-- Create a launcher widget and a main menu
myawesomemenu = {
   { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
   { "manual", terminal .. " -e man awesome" },
   { "edit config", editor_cmd .. " " .. awesome.conffile },
   { "restart", awesome.restart },
   { "quit", function() awesome.quit() end },
}

local menu_awesome = { "awesome", myawesomemenu, beautiful.awesome_icon }
local menu_terminal = { "open terminal", terminal }

if has_fdo then
    mymainmenu = freedesktop.menu.build({
        before = { menu_awesome },
        after =  { menu_terminal }
    })
else
    mymainmenu = awful.menu({
        items = {
                  menu_awesome,
                  { "Debian", debian.menu.Debian_menu.Debian },
                  menu_terminal,
                }
    })
end


mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
                                     menu = mymainmenu })

-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
-- }}}

-- Keyboard map indicator and switcher
mykeyboardlayout = awful.widget.keyboardlayout()

-- {{{ Wibar
-- Create a textclock widget
mytextclock = wibox.widget.textclock()

-- Keyboard map indicator and changer
local keyboard_layout = require("keyboard_layout")
local kbdcfg = keyboard_layout.kbdcfg({type = "tui"})
kbdcfg.add_primary_layout("Français", "FR", "fr")
kbdcfg.add_additional_layout("English", "US", "us")
kbdcfg.bind()

-- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join(
                    awful.button({ }, 1, function(t) t:view_only() end),
                    awful.button({ modkey }, 1, function(t)
                                              if client.focus then
                                                  client.focus:move_to_tag(t)
                                              end
                                          end),
                    awful.button({ }, 3, awful.tag.viewtoggle),
                    awful.button({ modkey }, 3, function(t)
                                              if client.focus then
                                                  client.focus:toggle_tag(t)
                                              end
                                          end),
                    awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
                    awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
                )

local tasklist_buttons = gears.table.join(
                     awful.button({ }, 1, function (c)
                                              if c == client.focus then
                                                  c.minimized = true
                                              else
                                                  c:emit_signal(
                                                      "request::activate",
                                                      "tasklist",
                                                      {raise = true}
                                                  )
                                              end
                                          end),
                     awful.button({ }, 3, function()
                                              awful.menu.client_list({ theme = { width = 250 } })
                                          end),
                     awful.button({ }, 4, function ()
                                              awful.client.focus.byidx(1)
                                          end),
                     awful.button({ }, 5, function ()
                                              awful.client.focus.byidx(-1)
                                          end))

local function set_wallpaper(s)
    -- Wallpaper
    if beautiful.wallpaper then
        local wallpaper = beautiful.wallpaper
        -- If wallpaper is a function, call it with the screen
        if type(wallpaper) == "function" then
            wallpaper = wallpaper(s)
        end
        gears.wallpaper.set("#400000")
        -- gears.wallpaper.maximized(wallpaper, s, true)
    end
end

-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", set_wallpaper)

awful.screen.connect_for_each_screen(function(s)
    -- Wallpaper
    set_wallpaper(s)

    -- Each screen has its own tag table.


    -- Create a promptbox for each screen
    s.mypromptbox = awful.widget.prompt()
    -- Create an imagebox widget which will contain an icon indicating which layout we're using.
    -- We need one layoutbox per screen.
    s.mylayoutbox = awful.widget.layoutbox(s)
    s.mylayoutbox:buttons(gears.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 {
        screen  = s,
        filter  = awful.widget.taglist.filter.all,
        buttons = taglist_buttons
    }

    -- Create a tasklist widget
    s.mytasklist = awful.widget.tasklist {
        screen  = s,
        filter  = awful.widget.tasklist.filter.currenttags,
        buttons = tasklist_buttons
    }

    -- Create the wibox
    s.mywibox = awful.wibar({ position = "top", screen = s })

    -- Add widgets to the wibox
    s.mywibox:setup {
        layout = wibox.layout.align.horizontal,
        { -- Left widgets
            layout = wibox.layout.fixed.horizontal,
            mylauncher,
            s.mytaglist,
            s.mypromptbox,
        },
        s.mytasklist, -- Middle widget
        { -- Right widgets
            layout = wibox.layout.fixed.horizontal,
            mykeyboardlayout,
            wibox.widget.systray(),
            mytextclock,
            s.mylayoutbox,
        },
    }
end)
-- }}}

-- tyrannical config : app on specific tag and screen with tyrannical
tyrannical.tags = {
    {
        name        = "dev",                 -- Call the tag "dev"
        init        = true,                   -- Load the tag on startup
        inclusive   = true,
        screen      = {1,2},                  -- Create this tag on screen 1 and screen 2
        layout      = awful.layout.suit.tile, -- Use the tile layout
        instance    = { --Accept the following classes, refuse everything else (because of "exclusive=true")
           "vscodium", "qterminal"}
    } ,
    {
        name        = "tex",                 -- Call the tag "dev"
        init        = true,                   -- Load the tag on startup
        inclusive   = true,
        screen      = {1,2},                  -- Create this tag on screen 1 and screen 2
        layout      = awful.layout.suit.tile, -- Use the tile layout
        instance    = { --Accept the following classes, refuse everything else (because of "exclusive=true")
            "vscodium" , "qterminal"}
    },
}
-- Display in all tags
--tyrannical.properties.sticky = {
--    "xterm", "Okular","qterminal", 
--}

-- tyrannical.settings.block_children_focus_stealing = true --Block popups ()
-- tyrannical.settings.group_children = true --Force popups/dialogs to have the same tags as the parent client


-- {{{ Mouse bindings
root.buttons(gears.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end),
    awful.button({ }, 4, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}

-- {{{ Key bindings
globalkeys = gears.table.join(
    awful.key({ modkey,           }, "s",      hotkeys_popup.show_help,
              {description="show help", group="awesome"}),
    awful.key({ modkey,           }, ",",   awful.tag.viewprev,
              {description = "view previous", group = "tag"}),
    awful.key({ modkey,           }, ";",  awful.tag.viewnext,
              {description = "view next", group = "tag"}),
    awful.key({ modkey,           }, "Escape", awful.tag.history.restore,
              {description = "go back", group = "tag"}),

    awful.key({ modkey,           }, "j",
        function ()
            awful.client.focus.byidx( 1)
        end,
        {description = "focus next by index", group = "client"}
    ),
    awful.key({ modkey,           }, "k",
        function ()
            awful.client.focus.byidx(-1)
        end,
        {description = "focus previous by index", group = "client"}
    ),
    awful.key({ modkey,           }, "w", function () mymainmenu:show() end,
              {description = "show main menu", group = "awesome"}),

    -- Layout manipulation
    awful.key({ modkey, "Shift"   }, "j", function () awful.client.swap.byidx(  1)    end,
              {description = "swap with next client by index", group = "client"}),
    awful.key({ modkey, "Shift"   }, "k", function () awful.client.swap.byidx( -1)    end,
              {description = "swap with previous client by index", group = "client"}),
    awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
              {description = "focus the next screen", group = "screen"}),
    awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
              {description = "focus the previous screen", group = "screen"}),
    awful.key({ modkey,           }, "u", awful.client.urgent.jumpto,
              {description = "jump to urgent client", group = "client"}),
    awful.key({ modkey,           }, "Tab",
        function ()
            awful.client.focus.history.previous()
            if client.focus then
                client.focus:raise()
            end
        end,
        {description = "go back", group = "client"}),

    -- Standard program
    awful.key({ modkey,           }, "Return", function () awful.spawn(terminal) end,
              {description = "open a terminal", group = "launcher"}),
    awful.key({ modkey, "Control" }, "r", awesome.restart,
              {description = "reload awesome", group = "awesome"}),
    awful.key({ modkey, "Shift"   }, "q", awesome.quit,
              {description = "quit awesome", group = "awesome"}),

    awful.key({ modkey,           }, "l",     function () awful.tag.incmwfact( 0.05)          end,
              {description = "increase master width factor", group = "layout"}),
    awful.key({ modkey,           }, "h",     function () awful.tag.incmwfact(-0.05)          end,
              {description = "decrease master width factor", group = "layout"}),
    awful.key({ modkey, "Shift"   }, "h",     function () awful.tag.incnmaster( 1, nil, true) end,
              {description = "increase the number of master clients", group = "layout"}),
    awful.key({ modkey, "Shift"   }, "l",     function () awful.tag.incnmaster(-1, nil, true) end,
              {description = "decrease the number of master clients", group = "layout"}),
    awful.key({ modkey, "Control" }, "h",     function () awful.tag.incncol( 1, nil, true)    end,
              {description = "increase the number of columns", group = "layout"}),
    awful.key({ modkey, "Control" }, "l",     function () awful.tag.incncol(-1, nil, true)    end,
              {description = "decrease the number of columns", group = "layout"}),
    awful.key({ modkey,           }, "space", function () awful.layout.inc( 1)                end,
              {description = "select next", group = "layout"}),
    awful.key({ modkey, "Shift"   }, "space", function () awful.layout.inc(-1)                end,
              {description = "select previous", group = "layout"}),

    awful.key({ modkey, "Control" }, "n",
              function ()
                  local c = awful.client.restore()
                  -- Focus restored client
                  if c then
                    c:emit_signal(
                        "request::activate", "key.unminimize", {raise = true}
                    )
                  end
              end,
              {description = "restore minimized", group = "client"}),

    -- Dmenu
    awful.key({ modkey },            "r",     function () 
              awful.util.spawn("dmenu_run") end,
              {description = "run dmenu", group = "launcher"}),
              
    -- Firefox
    awful.key({ modkey },            "b",     function () 
              awful.util.spawn("firefox") end,
              {description = "firefox", group = "applications"}),

    awful.key({ modkey }, "x",
              function ()
                  awful.prompt.run {
                    prompt       = "Run Lua code: ",
                    textbox      = awful.screen.focused().mypromptbox.widget,
                    exe_callback = awful.util.eval,
                    history_path = awful.util.get_cache_dir() .. "/history_eval"
                  }
              end,
              {description = "lua execute prompt", group = "awesome"}),
    -- Menubar
    awful.key({ modkey }, "p", function() menubar.show() end,
              {description = "show the menubar", group = "launcher"})
)

clientkeys = gears.table.join(
    awful.key({ modkey,           }, "f",
        function (c)
            c.fullscreen = not c.fullscreen
            c:raise()
        end,
        {description = "toggle fullscreen", group = "client"}),
    awful.key({ modkey,  }, "q",      function (c) c:kill()                         end,
              {description = "close", group = "client"}),
    awful.key({ modkey, "Control" }, "space",  awful.client.floating.toggle                     ,
              {description = "toggle floating", group = "client"}),
    awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
              {description = "move to master", group = "client"}),
    awful.key({ modkey,           }, "o",      function (c) c:move_to_screen()               end,
              {description = "move to screen", group = "client"}),
    awful.key({ modkey,           }, "t",      function (c) c.ontop = not c.ontop            end,
              {description = "toggle keep on top", group = "client"}),
    awful.key({ modkey,           }, "n",
        function (c)
            -- The client currently has the input focus, so it cannot be
            -- minimized, since minimized clients can't have the focus.
            c.minimized = true
        end ,
        {description = "minimize", group = "client"}),
    awful.key({ modkey,           }, "m",
        function (c)
            c.maximized = not c.maximized
            c:raise()
        end ,
        {description = "(un)maximize", group = "client"}),
    awful.key({ modkey, "Control" }, "m",
        function (c)
            c.maximized_vertical = not c.maximized_vertical
            c:raise()
        end ,
        {description = "(un)maximize vertically", group = "client"}),
    awful.key({ modkey, "Shift"   }, "m",
        function (c)
            c.maximized_horizontal = not c.maximized_horizontal
            c:raise()
        end ,
        {description = "(un)maximize horizontally", group = "client"})
)

-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do
    globalkeys = gears.table.join(globalkeys,
        -- View tag only.
        awful.key({ modkey }, "#" .. i + 9,
                  function ()
                        local screen = awful.screen.focused()
                        local tag = screen.tags[i]
                        if tag then
                           tag:view_only()
                        end
                  end,
                  {description = "view tag #"..i, group = "tag"}),
        -- Toggle tag display.
        awful.key({ modkey, "Control" }, "#" .. i + 9,
                  function ()
                      local screen = awful.screen.focused()
                      local tag = screen.tags[i]
                      if tag then
                         awful.tag.viewtoggle(tag)
                      end
                  end,
                  {description = "toggle tag #" .. i, group = "tag"}),
        -- Move client to tag.
        awful.key({ modkey, "Shift" }, "#" .. i + 9,
                  function ()
                      if client.focus then
                          local tag = client.focus.screen.tags[i]
                          if tag then
                              client.focus:move_to_tag(tag)
                          end
                     end
                  end,
                  {description = "move focused client to tag #"..i, group = "tag"}),
        -- Toggle tag on focused client.
        awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
                  function ()
                      if client.focus then
                          local tag = client.focus.screen.tags[i]
                          if tag then
                              client.focus:toggle_tag(tag)
                          end
                      end
                  end,
                  {description = "toggle focused client on tag #" .. i, group = "tag"})
    )
end

clientbuttons = gears.table.join(
    awful.button({ }, 1, function (c)
        c:emit_signal("request::activate", "mouse_click", {raise = true})
    end),
    awful.button({ modkey }, 1, function (c)
        c:emit_signal("request::activate", "mouse_click", {raise = true})
        awful.mouse.client.move(c)
    end),
    awful.button({ modkey }, 3, function (c)
        c:emit_signal("request::activate", "mouse_click", {raise = true})
        awful.mouse.client.resize(c)
    end)
)

-- Set keys
root.keys(globalkeys)
-- }}}

-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
      properties = { border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
                     focus = awful.client.focus.filter,
                     raise = true,
                     keys = clientkeys,
                     buttons = clientbuttons,
                     screen = awful.screen.preferred,
                     placement = awful.placement.no_overlap+awful.placement.no_offscreen
     }
    },

    -- Floating clients.
    { rule_any = {
        instance = {
          "DTA",  -- Firefox addon DownThemAll.
          "copyq",  -- Includes session name in class.
          "pinentry",
        },
        class = {
          "Arandr",
          "Blueman-manager",
          "Gpick",
          "Kruler",
          "MessageWin",  -- kalarm.
          "Sxiv",
          "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
          "Wpa_gui",
          "veromix",
          "xtightvncviewer"},

        -- Note that the name property shown in xprop might be set slightly after creation of the client
        -- and the name shown there might not match defined rules here.
        name = {
          "Event Tester",  -- xev.
        },
        role = {
          "AlarmWindow",  -- Thunderbird's calendar.
          "ConfigManager",  -- Thunderbird's about:config.
          "pop-up",       -- e.g. Google Chrome's (detached) Developer Tools.
        }
      }, properties = { floating = true }},

    -- Add titlebars to normal clients and dialogs
    { rule_any = {type = { "normal", "dialog" }
      }, properties = { titlebars_enabled = true }
    },

    -- Set Firefox to always map on the tag named "2" on screen 1.
    -- { rule = { class = "Firefox" },
    --   properties = { screen = 1, tag = "2" } },
}
-- }}}

-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c)
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    -- if not awesome.startup then awful.client.setslave(c) end

    if awesome.startup
      and not c.size_hints.user_position
      and not c.size_hints.program_position then
        -- Prevent clients from being unreachable after screen count changes.
        awful.placement.no_offscreen(c)
    end
end)

-- Add a titlebar if titlebars_enabled is set to true in the rules.
client.connect_signal("request::titlebars", function(c)
    -- buttons for the titlebar
    local buttons = gears.table.join(
        awful.button({ }, 1, function()
            c:emit_signal("request::activate", "titlebar", {raise = true})
            awful.mouse.client.move(c)
        end),
        awful.button({ }, 3, function()
            c:emit_signal("request::activate", "titlebar", {raise = true})
            awful.mouse.client.resize(c)
        end)
    )

    awful.titlebar(c) : setup {
        { -- Left
            awful.titlebar.widget.iconwidget(c),
            buttons = buttons,
            layout  = wibox.layout.fixed.horizontal
        },
        { -- Middle
            { -- Title
                align  = "center",
                widget = awful.titlebar.widget.titlewidget(c)
            },
            buttons = buttons,
            layout  = wibox.layout.flex.horizontal
        },
        { -- Right
            awful.titlebar.widget.floatingbutton (c),
            awful.titlebar.widget.maximizedbutton(c),
            awful.titlebar.widget.stickybutton   (c),
            awful.titlebar.widget.ontopbutton    (c),
            awful.titlebar.widget.closebutton    (c),
            layout = wibox.layout.fixed.horizontal()
        },
        layout = wibox.layout.align.horizontal
    }
end)

-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
    c:emit_signal("request::activate", "mouse_enter", {raise = false})
end)

client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}


-- Windows border gaps
beautiful.useless_gap = 5

-- autostart apps
awful.util.spawn("firefox")


-- Collision plugin
require("collision")()
**Edit:** after few tests it seems that Okular pdf viewer has the same behaviour as VSCodium...
zetyty (101 rep)
Sep 12, 2024, 01:33 PM • Last activity: Sep 12, 2024, 02:15 PM
0 votes
0 answers
69 views
vscode linux UI border menu has a white border
I am using Linux Ubuntu LTS 20.04 with BSPWM, SXHKD, PICOM, POLYBAR, on VMware Pro. When I click on any menu, it has a border around it that is white and a little blurry. How can I solve it? I want to delete it I tried to modify picom but I can't fix it [![problem view][1]][1] [1]: https://i.sstatic...
I am using Linux Ubuntu LTS 20.04 with BSPWM, SXHKD, PICOM, POLYBAR, on VMware Pro. When I click on any menu, it has a border around it that is white and a little blurry. How can I solve it? I want to delete it I tried to modify picom but I can't fix it problem view
Jose Tomas Torre Pedroarena (1 rep)
Sep 11, 2024, 05:45 PM • Last activity: Sep 11, 2024, 09:07 PM
0 votes
0 answers
133 views
Upgrading libstdc++ to Include GLIBCXX_3.4.30 on Oracle Linux 9.4 AArch64 for Amazon Q Extension Compatibility
Has anyone successfully added GLIBCXX_3.4.30 to Oracle Linux 9 (specifically version 9.4 on AArch64 architecture)? I am encountering a version mismatch error when trying to run the Amazon Q extension on Visual Studio Insiders 1.93.0. The available `libstdc++.so.6` on my system only goes up to GLIBCX...
Has anyone successfully added GLIBCXX_3.4.30 to Oracle Linux 9 (specifically version 9.4 on AArch64 architecture)? I am encountering a version mismatch error when trying to run the Amazon Q extension on Visual Studio Insiders 1.93.0. The available libstdc++.so.6 on my system only goes up to GLIBCXX_3.4.29. What are the best practices or recommended steps to upgrade the libstdc++ library to include GLIBCXX_3.4.30, or is there an alternative workaround that you've found effective?
Request initialize failed with message: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found 
(required by /home/opc/.vscode-server-insiders/extensions/amazonwebservices.amazon-q-vscode-1.22.0/
resources/qserver/dist/build/Release/faiss-node.node)
robi (1 rep)
Aug 28, 2024, 06:13 AM
0 votes
2 answers
1819 views
__USE_POSIX and VS Code in WSL distro
I'm learning C and in general I code with VS Code in Ubuntu. For convenience, I'm trying to migrate my learning materials to Windows where a lot of my other works happen, so I installed WSL 2 and its distro Ubuntu 18.04 LTS. After installing VS Code for Windows and its remote extension to work with...
I'm learning C and in general I code with VS Code in Ubuntu. For convenience, I'm trying to migrate my learning materials to Windows where a lot of my other works happen, so I installed WSL 2 and its distro Ubuntu 18.04 LTS. After installing VS Code for Windows and its remote extension to work with WSL, I boot up a new WSL session in VS Code, install the C/C++ extension with IntelliSense then write a simple program like below just for demonstration:
#include 

int main()
{
    kill(-1, SIGKILL);
}
The problem with VS Code is that while the program compiles, its IntelliSense doesn't detect the kill function in the signal.h header. By further investigating the header file, I observe that the following part is darkened
#ifdef __USE_POSIX
extern int kill (__pid_t __pid, int __sig) __THROW;
#endif /* Use POSIX.  */
along with other parts where __USE_POSIX is checked, including but not limited to siginfo_t, struct sigaction. Is there a way to make VS Code recognise these macros/variables to enable IntelliSense's assistance?
dqtvictory (1 rep)
Jul 2, 2021, 09:47 AM • Last activity: Aug 19, 2024, 03:49 PM
1 votes
0 answers
131 views
SSHing into remote machine from terminal doesn't ask for password, but through VS Code integrated terminal, it does, Why?
I'm working on a project where I have to run a python script which will open a tmux session with multiple windows, in each one ssh into a different remote machine, and run another python script. I'm new to both tmux and ssh and I was using VS Code's built in terminal, which worked fine, up until I w...
I'm working on a project where I have to run a python script which will open a tmux session with multiple windows, in each one ssh into a different remote machine, and run another python script. I'm new to both tmux and ssh and I was using VS Code's built in terminal, which worked fine, up until I wanted to clear the tmux server. I manually ran tmux kill-server to get rid of all the sessions and windows I had created. Upon running my python script again, I noticed that it hadn't given an output like it usually did. I attached to the tmux session and I saw that when the script had tried to ssh onto the remote machine the terminal had returned:
could not open any host key
ssh_keysign: no reply
sign using hostkey ssh-ed25519 SHA256:/BRoTCDFKguzQMzgzvdPa48k3sm6k9J9WWgmc/ly39U failed
() Password:
and then prompts you for your password. \ This wouldn't be a problem if I was SSHing into the remote machine manually, but I have a python script that runs
set_up_file_command = f'tmux send-keys -t {session_name} -l "ssh {cpu_name} python {file_path} {cpu_name}"'
subprocess.run(set_up_file_command, shell=True)
I can probably change the script to accommodate a password but I'm interested in why clearing the tmux server to begin with created this issue and why a normal terminal works. When I ssh into the remote machine through a normally opened terminal all I have to do is ssh , without specifying a password. I've tried restarting the integrated terminal and restarting the tmux server several times but nothing has changed. I'm very inexperienced when it comes to ssh, tmux, and server work and I'm pretty lost. I can use the regular terminal to run my python script but I just want to know why it doesn't work in the integrated terminal?
a dude (11 rep)
Jun 20, 2024, 04:17 PM
0 votes
1 answers
110 views
Where to get Debian packages for Visual Studio Code from: packages.microsoft.com/repos/code or packages.microsoft.com/repos/vscode?
To install Visial Studio Code on Debian, different sources advise using different repositories: - https://code.visualstudio.com/docs/setup/linux advises to use https://packages.microsoft.com/repos/code, whereas - https://wiki.debian.org/VisualStudioCode advises to use https://packages.microsoft.com/...
To install Visial Studio Code on Debian, different sources advise using different repositories: - https://code.visualstudio.com/docs/setup/linux advises to use https://packages.microsoft.com/repos/code , whereas - https://wiki.debian.org/VisualStudioCode advises to use https://packages.microsoft.com/repos/vscode . Any difference as far as the latest version on amd64 is concerned? The latest versions in the two pools seem the same (code_1.89.1-1715060508_amd64.deb at the time these lines are written), though the directories https://packages.microsoft.com/repos/code/pool/main/c/code and https://packages.microsoft.com/repos/vscode/pool/main/c/code are different (as of now): listing Any official rationale or any official reason for having two places? After all, Microsoft could offer only one with all the files. PS. Visual Studio Code is NOT the same as Visual Studio.
AlMa1r (1 rep)
May 28, 2024, 06:23 PM • Last activity: May 29, 2024, 03:10 PM
1 votes
1 answers
1924 views
How to show all current ssh connected users on Linux?
Using GCP VM Instance, I'm connected via ssh, not serial port. When I type `w` or `who` or `finger` I get the following output: ``` $ w 08:46:18 up 41 min, 0 users, load average: 0.10, 0.07, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT $ who $ finger No one logged on. ``` I'm expecting to see my cu...
Using GCP VM Instance, I'm connected via ssh, not serial port. When I type w or who or finger I get the following output:
$ w
08:46:18 up 41 min,  0 users,  load average: 0.10, 0.07, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

$ who                                                                                                                         

$ finger                                                                                                                      No one logged on.
I'm expecting to see my current connected user, but this is not the case. I tried to connect as another user along mine and it showed, but not my primary user, either when he or the other runs the command.
> pstree -alus "$$" 
systemd
  └─sshd
      └─sshd
          └─sshd,Dédé
              └─bash
                  └─bash
                      └─code-e170252f76 command-shell --cli-data-dir /home/Dédé/.vscode-server/cli --parent-process-id 234934 --on-port
                          └─sh /home/Dédé/.vscode-server/cli/servers/Stable-e170252f762678dec6ca2cc69aba1570769a5d39/server/bin/code-server --connection-token=remotessh --accept-server-license-terms --start-server --enable-remote-auto-shutdown --socket-path=/tmp/code-bd3d6d38-59de-47a1-8df7-54881cb666dd
                              └─node /home/Dédé/.vscode-server/cli/servers/Stable-e170252f762678dec6ca2cc69aba1570769a5d39/server/out/server-main.js --connection-token=remotessh --accept-server-license-terms --start-server --enable-remote-auto-shutdown --socket-path=/tmp/code-bd3d6d38-59de-47a1-8df7-54881cb666dd
                                  └─node /home/Dédé/.vscode-server/cli/servers/Stable-e170252f762678dec6ca2cc69aba1570769a5d39/server/out/bootstrap-fork --type=ptyHost --logsPath /home/Dédé/.vscode-server/data/logs/20240504T173238
                                      └─zsh -i
                                          └─pstree -alus 271031
D&#233;d&#233; (11 rep)
May 4, 2024, 10:57 AM • Last activity: May 6, 2024, 02:29 PM
4 votes
1 answers
1180 views
ps: invalid option -- 'p'
I'm using Yocto Project (honister) to build my OS image. When I'm trying to use vscode ssh extension, I'm getting an error: ``` > ps: invalid option -- 'p' > BusyBox v1.34.1 () multi-call binary.Usage: ps > Exec server process not found ``` Any ideas? What can I install? Is there any other ps implem...
I'm using Yocto Project (honister) to build my OS image. When I'm trying to use vscode ssh extension, I'm getting an error:
> ps: invalid option -- 'p'
> BusyBox v1.34.1 () multi-call binary.Usage: ps
> Exec server process not found
Any ideas? What can I install? Is there any other ps implementation?
YoctoDragon (43 rep)
May 6, 2024, 10:44 AM • Last activity: May 6, 2024, 01:27 PM
5 votes
2 answers
5191 views
When installing VSCode via Flatpak, where is its `code` executable located?
When installing Visual Studio Code via apt or homebrew, the VSCode `code` executable goes to a standard location that is within `PATH`, however it seems when installing VSCode via Flatpak, it goes somewhere special. I am trying to find this location such that I can add it to my `PATH`.
When installing Visual Studio Code via apt or homebrew, the VSCode code executable goes to a standard location that is within PATH, however it seems when installing VSCode via Flatpak, it goes somewhere special. I am trying to find this location such that I can add it to my PATH.
balupton (634 rep)
Oct 31, 2021, 10:59 PM • Last activity: Apr 23, 2024, 12:02 PM
0 votes
0 answers
63 views
"[" displayed as "&#196;" and "]" displayed as "&#197;" in remote terminal from vscode
I did the following things in VSCODE: 1) remote ssh into a remote virtual machine; 2) opened a terminal; 3) typed some characters into the terminal. I then noticed that `[` is displayed as `&#196;` and `]` is displayed as `&#197;` in remote terminal from the vscode. I also confirmed that before remo...
I did the following things in VSCODE: 1) remote ssh into a remote virtual machine; 2) opened a terminal; 3) typed some characters into the terminal. I then noticed that [ is displayed as Ä and ] is displayed as Å in remote terminal from the vscode. I also confirmed that before remote ssh, characters in local terminal are correct. Further, my local machine is windows and executing "locale" on on bash session from remote server through vscode provides me the following result:
-console
bash-4.4$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Further, as I got no problem on the server without going through vscode, I ran "locale" there and got the following:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
There has to be some encoding decoding issue on vscode-server, in my understanding. Can anyone tell me how to fix it from vscode?
Ziqi Fan (247 rep)
Apr 20, 2024, 07:39 PM • Last activity: Apr 20, 2024, 08:58 PM
2 votes
1 answers
4765 views
Can't open VS Code on Kali Linux as super user or root
I installed VS Code on Kali Linux and when I tried opening it with the `code` command, this message would appear: > You are trying to start Visual Studio Code as a super user which isn't recommended. If this was intended, please specify an alternate user data directory using the `--user-data-dir` ar...
I installed VS Code on Kali Linux and when I tried opening it with the code command, this message would appear: > You are trying to start Visual Studio Code as a super user which isn't recommended. If this was intended, please specify an alternate user data directory using the --user-data-dir argument. I tried this command: sudo code --user-data-dir="~/.vscode-root" but that did not work either.
Aarzoo Mohammad (31 rep)
Jul 11, 2021, 04:54 PM • Last activity: Apr 6, 2024, 01:01 AM
0 votes
1 answers
432 views
vscode and edge has different mouse cursor size with system
I'm on manjaro with xfce. my mouse cursor size differs when it is on vscode and not. it also happens on edge. The vscode is installed use aur of `visual-studio-code-bin` package. [![enter image description here][1]][1] [![enter image description here][2]][2] [1]: https://i.sstatic.net/acSMI.jpg [2]:...
I'm on manjaro with xfce. my mouse cursor size differs when it is on vscode and not. it also happens on edge. The vscode is installed use aur of visual-studio-code-bin package. enter image description here enter image description here
Shore (103 rep)
Jan 13, 2024, 06:49 AM • Last activity: Jan 13, 2024, 07:19 AM
3 votes
3 answers
4251 views
Running VSCode headless, without installing desktop environment
Can you install VS-Code-CLI on a headless machine, without installing a desktop environment too? (I sometimes wish to access my code on an Android tablet, using the PWA version of Code that doesn't allow ssh, only the VS Code tunnel.) system spec: ``` No monitors, keyboards, speakers or anything. Ol...
Can you install VS-Code-CLI on a headless machine, without installing a desktop environment too? (I sometimes wish to access my code on an Android tablet, using the PWA version of Code that doesn't allow ssh, only the VS Code tunnel.) system spec:
No monitors, keyboards, speakers or anything.
Old Atom processor, 4G RAM
Debian 12 6.1.0-amd64 GCC 12.2
Node 20.1
Running code returns:
$ ./code 
No installation of Visual Studio Code stable was found.
Install it from your system's package manager or https://code.visualstudio.com , restart your shell, and try again.

If you already installed Visual Studio Code and we didn't detect it, run code version use stable --install-dir /path/to/installation
To install the Debian package code_1.85.1-1702462158_amd64.deb, depends on a display server, a window manager, a sound-subsystem, 1000s of libraries, etc. Which I don't need, or even want to attempt to install, on such a low-powered machine! The same would apply to Raspberry Pi headless systems too. The Debian package for code, depends on all these things. Has anyone tried something different, or could the Debian package be split into, for example, code-core into code-gui
LukeW (33 rep)
Dec 24, 2023, 04:47 PM • Last activity: Dec 30, 2023, 03:27 AM
Showing page 1 of 20 total questions