This commit is contained in:
crschnick 2024-04-22 06:01:20 +00:00
parent 8564b2e820
commit 4ca3d2c52c
62 changed files with 216 additions and 281 deletions

View file

@ -94,7 +94,7 @@ public class BrowserStatusBarComp extends SimpleComp {
model.getFileList().getAll());
var selectedComp = new LabelComp(Bindings.createStringBinding(
() -> {
if (selectedCount.getValue().intValue() == 0) {
if (selectedCount.getValue() == 0) {
return null;
} else {
return selectedCount.getValue() + " / " + allCount.getValue() + " selected";

View file

@ -40,7 +40,7 @@ public class BrowserSessionMultiTab extends BrowserSessionTab<DataStore> {
return true;
}
public void init() throws Exception {}
public void init() {}
public void close() {}
}

View file

@ -123,7 +123,7 @@ public class BrowserSessionTabsComp extends SimpleComp {
});
});
model.getSessionEntries().addListener((ListChangeListener<? super BrowserSessionTab>) c -> {
model.getSessionEntries().addListener((ListChangeListener<? super BrowserSessionTab<?>>) c -> {
while (c.next()) {
for (var r : c.getRemoved()) {
PlatformThread.runLaterIfNeeded(() -> {

View file

@ -27,7 +27,7 @@ public class ListBoxViewComp<T> extends Comp<CompStructure<ScrollPane>> {
private final ObservableList<T> shown;
private final ObservableList<T> all;
private final Function<T, Comp<?>> compFunction;
private int limit = Integer.MAX_VALUE;
private final int limit = Integer.MAX_VALUE;
public ListBoxViewComp(ObservableList<T> shown, ObservableList<T> all, Function<T, Comp<?>> compFunction) {
this.shown = PlatformThread.sync(shown);

View file

@ -27,7 +27,7 @@ public class StoreCreationMenu {
menu.getItems().add(category("addHost", "mdi2h-home-plus", DataStoreProvider.CreationCategory.HOST, "ssh"));
menu.getItems()
.add(category("addDesktop", "mdi2c-camera-plus", DataStoreProvider.CreationCategory.DESKSTOP, null));
.add(category("addDesktop", "mdi2c-camera-plus", DataStoreProvider.CreationCategory.DESKTOP, null));
menu.getItems()
.add(category("addShell", "mdi2t-text-box-multiple", DataStoreProvider.CreationCategory.SHELL, null));

View file

@ -110,9 +110,7 @@ public class StoreSectionMiniComp extends Comp<CompStructure<VBox>> {
return section.getShownChildren().isEmpty();
},
section.getShownChildren());
Consumer<StoreEntryWrapper> quickAccessAction = w -> {
action.accept(w);
};
Consumer<StoreEntryWrapper> quickAccessAction = action;
var quickAccessButton = new StoreQuickAccessButtonComp(section, quickAccessAction)
.vgrow()
.styleClass("quick-access-button")

View file

@ -89,9 +89,6 @@ public class StoreAddExchangeImpl extends StoreAddExchange
DataStore s = creator.getResult();
String d = "";
try {
} catch (Exception ignored) {
}
d = d.indent(2);
return "Successfully created data store " + name.get() + ":\n" + d;
});

View file

@ -220,6 +220,6 @@ public interface DataStoreProvider {
TUNNEL,
SCRIPT,
CLUSTER,
DESKSTOP;
DESKTOP
}
}

View file

@ -16,7 +16,7 @@ import javafx.beans.value.ObservableBooleanValue;
public interface SingletonSessionStoreProvider extends DataStoreProvider {
@Override
public default ObservableBooleanValue busy(StoreEntryWrapper wrapper) {
default ObservableBooleanValue busy(StoreEntryWrapper wrapper) {
return Bindings.createBooleanBinding(
() -> {
SingletonSessionStore<?> s = wrapper.getEntry().getStore().asNeeded();
@ -26,7 +26,7 @@ public interface SingletonSessionStoreProvider extends DataStoreProvider {
}
@Override
public default StoreEntryComp customEntryComp(StoreSection sec, boolean preferLarge) {
default StoreEntryComp customEntryComp(StoreSection sec, boolean preferLarge) {
var t = createToggleComp(sec);
return StoreEntryComp.create(sec.getWrapper(), t, preferLarge);
}
@ -53,7 +53,7 @@ public interface SingletonSessionStoreProvider extends DataStoreProvider {
return t;
}
public default Comp<?> stateDisplay(StoreEntryWrapper w) {
default Comp<?> stateDisplay(StoreEntryWrapper w) {
return new SystemStateComp(Bindings.createObjectBinding(
() -> {
SingletonSessionStore<?> s = w.getEntry().getStore().asNeeded();

View file

@ -106,7 +106,7 @@ public class PrettyImageComp extends SimpleComp {
}
};
PlatformThread.sync(value).subscribe(val -> update.accept(val));
PlatformThread.sync(value).subscribe(update);
AppPrefs.get().theme.addListener((observable, oldValue, newValue) -> {
update.accept(value.getValue());
});

View file

@ -92,7 +92,7 @@ public class PrettySvgComp extends SimpleComp {
image.set(fixed);
};
syncValue.subscribe(val -> update.accept(val));
syncValue.subscribe(update);
AppPrefs.get().theme.addListener((observable, oldValue, newValue) -> {
update.accept(syncValue.getValue());
});

View file

@ -22,11 +22,7 @@ public class BindingsHelper {
static {
ThreadHelper.createPlatformThread("referenceGC", true, () -> {
while (true) {
for (ReferenceEntry reference : REFERENCES) {
if (reference.canGc()) {
REFERENCES.remove(reference);
}
}
REFERENCES.removeIf(ReferenceEntry::canGc);
ThreadHelper.sleep(1000);
// Use for testing

View file

@ -10,7 +10,7 @@ public interface ExternalPasswordManager extends PrefsChoiceValue {
String getTemplate();
static ExternalPasswordManager BITWARDEN = new ExternalPasswordManager() {
ExternalPasswordManager BITWARDEN = new ExternalPasswordManager() {
@Override
public String getTemplate() {
return "bw get password $KEY --nointeraction --raw";
@ -22,7 +22,7 @@ public interface ExternalPasswordManager extends PrefsChoiceValue {
}
};
static ExternalPasswordManager ONEPASSWORD = new ExternalPasswordManager() {
ExternalPasswordManager ONEPASSWORD = new ExternalPasswordManager() {
@Override
public String getTemplate() {
return "op read $KEY --force";
@ -34,7 +34,7 @@ public interface ExternalPasswordManager extends PrefsChoiceValue {
}
};
static ExternalPasswordManager DASHLANE = new ExternalPasswordManager() {
ExternalPasswordManager DASHLANE = new ExternalPasswordManager() {
@Override
public String getTemplate() {
return "dcli password --output console $KEY";
@ -46,7 +46,7 @@ public interface ExternalPasswordManager extends PrefsChoiceValue {
}
};
static ExternalPasswordManager LASTPASS = new ExternalPasswordManager() {
ExternalPasswordManager LASTPASS = new ExternalPasswordManager() {
@Override
public String getTemplate() {
return "lpass show --password $KEY";
@ -58,7 +58,7 @@ public interface ExternalPasswordManager extends PrefsChoiceValue {
}
};
static ExternalPasswordManager MACOS_KEYCHAIN = new ExternalPasswordManager() {
ExternalPasswordManager MACOS_KEYCHAIN = new ExternalPasswordManager() {
@Override
public String getTemplate() {
return "security find-generic-password -w -l $KEY";
@ -75,7 +75,7 @@ public interface ExternalPasswordManager extends PrefsChoiceValue {
}
};
static List<ExternalPasswordManager> ALL = Stream.of(ONEPASSWORD, BITWARDEN, DASHLANE, LASTPASS, MACOS_KEYCHAIN)
List<ExternalPasswordManager> ALL = Stream.of(ONEPASSWORD, BITWARDEN, DASHLANE, LASTPASS, MACOS_KEYCHAIN)
.filter(externalPasswordManager -> externalPasswordManager.isSelectable())
.toList();
}

View file

@ -196,10 +196,6 @@ public abstract class DataStorage {
return dir.resolve("data");
}
protected Path getStreamsDir() {
return dir.resolve("streams");
}
protected Path getCategoriesDir() {
return dir.resolve("categories");
}
@ -475,20 +471,6 @@ public abstract class DataStorage {
saveAsync();
}
public DataStoreCategory addStoreCategoryIfNotPresent(@NonNull DataStoreCategory cat) {
if (storeCategories.contains(cat)) {
return cat;
}
var byId = getStoreCategoryIfPresent(cat.getUuid()).orElse(null);
if (byId != null) {
return byId;
}
addStoreCategory(cat);
return cat;
}
public void addStoreCategory(@NonNull DataStoreCategory cat) {
cat.setDirectory(getCategoriesDir().resolve(cat.getUuid().toString()));
this.storeCategories.add(cat);
@ -736,12 +718,6 @@ public abstract class DataStorage {
return children;
}
public List<DataStoreEntry> getUsableEntries() {
return new ArrayList<>(getStoreEntries().stream()
.filter(entry -> entry.getValidity().isUsable())
.toList());
}
private List<DataStoreEntry> getHierarchy(DataStoreEntry entry) {
var es = new ArrayList<DataStoreEntry>();
es.add(entry);
@ -788,10 +764,6 @@ public abstract class DataStorage {
return Optional.empty();
}
public DataStoreEntry getStoreEntry(@NonNull DataStore store) {
return getStoreEntryIfPresent(store).orElseThrow(() -> new IllegalArgumentException("Store not found"));
}
public Optional<DataStoreEntry> getStoreEntryInProgressIfPresent(@NonNull DataStore store) {
return storeEntriesInProgress.keySet().stream()
.filter(n -> n.getStore() == store)

View file

@ -29,7 +29,7 @@ public interface AlacrittyTerminalType extends ExternalTerminalType {
return false;
}
static class Windows extends SimplePathType implements AlacrittyTerminalType {
class Windows extends SimplePathType implements AlacrittyTerminalType {
public Windows() {
super("app.alacritty", "alacritty", false);
@ -54,7 +54,7 @@ public interface AlacrittyTerminalType extends ExternalTerminalType {
}
}
static class Linux extends SimplePathType implements AlacrittyTerminalType {
class Linux extends SimplePathType implements AlacrittyTerminalType {
public Linux() {
super("app.alacritty", "alacritty", true);

View file

@ -12,8 +12,8 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory;
public interface KittyTerminalType extends ExternalTerminalType {
public static final ExternalTerminalType KITTY_LINUX = new Linux();
public static final ExternalTerminalType KITTY_MACOS = new MacOs();
ExternalTerminalType KITTY_LINUX = new Linux();
ExternalTerminalType KITTY_MACOS = new MacOs();
private static FilePath getSocket() throws Exception {
try (var sc = LocalShell.getShell().start()) {

View file

@ -55,7 +55,7 @@ public interface TabbyTerminalType extends ExternalTerminalType {
return null;
}
static class Windows extends ExternalTerminalType.WindowsType implements TabbyTerminalType {
class Windows extends ExternalTerminalType.WindowsType implements TabbyTerminalType {
public Windows() {
super("app.tabby", "Tabby.exe");

View file

@ -34,7 +34,7 @@ public interface WezTerminalType extends ExternalTerminalType {
return true;
}
static class Windows extends WindowsType implements WezTerminalType {
class Windows extends WindowsType implements WezTerminalType {
public Windows() {
super("app.wezterm", "wezterm-gui");
@ -61,7 +61,7 @@ public interface WezTerminalType extends ExternalTerminalType {
}
}
static class Linux extends SimplePathType implements WezTerminalType {
class Linux extends SimplePathType implements WezTerminalType {
public Linux() {
super("app.wezterm", "wezterm-gui", true);

View file

@ -10,8 +10,8 @@ import java.nio.file.Path;
public interface WindowsTerminalType extends ExternalTerminalType {
public static final ExternalTerminalType WINDOWS_TERMINAL = new Standard();
public static final ExternalTerminalType WINDOWS_TERMINAL_PREVIEW = new Preview();
ExternalTerminalType WINDOWS_TERMINAL = new Standard();
ExternalTerminalType WINDOWS_TERMINAL_PREVIEW = new Preview();
private static CommandBuilder toCommand(ExternalTerminalType.LaunchConfiguration configuration) throws Exception {
// A weird behavior in Windows Terminal causes the trailing

View file

@ -56,7 +56,7 @@ public class TerminalLauncher {
var terminalConfig = new TerminalInitScriptConfig(
adjustedTitle,
type.shouldClear() && AppPrefs.get().clearTerminalOnInit().get(),
cc instanceof ShellControl sc ? type.additionalInitCommands() : TerminalInitFunction.none());
cc instanceof ShellControl ? type.additionalInitCommands() : TerminalInitFunction.none());
var request = UUID.randomUUID();
var d = ProcessControlProvider.get().getEffectiveLocalDialect();

View file

@ -37,7 +37,7 @@ public class TerminalLauncherManager {
}
@Override
public FilePath apply(ShellControl shellControl) throws Exception {
public FilePath apply(ShellControl shellControl) {
if (directory == null) {
return null;
}

View file

@ -2,7 +2,7 @@ package io.xpipe.core.store;
public interface ExpandedLifecycleStore extends DataStore {
default void initializeValidate() throws Exception {}
default void initializeValidate() {}
default void finalizeValidate() throws Exception {}
}

View file

@ -3,7 +3,7 @@ package io.xpipe.core.store;
public interface SingletonSessionStore<T extends SingletonSessionStore.Session>
extends ExpandedLifecycleStore, InternalCacheDataStore {
abstract static class Session {
abstract class Session {
public abstract boolean isRunning();
@ -13,7 +13,7 @@ public interface SingletonSessionStore<T extends SingletonSessionStore.Session>
}
@Override
public default void finalizeValidate() throws Exception {
default void finalizeValidate() throws Exception {
stopSessionIfNeeded();
}

View file

@ -21,8 +21,7 @@ public interface StatefulDataStore<T extends DataStoreState> extends DataStore {
@SuppressWarnings("unchecked")
default T getState() {
return (T)
DataStateProvider.get().getState(this, this::createDefaultState).deepCopy();
return (T) DataStateProvider.get().getState(this, this::createDefaultState).deepCopy();
}
default void setState(T val) {

View file

@ -206,15 +206,6 @@ public class XPipeInstallation {
return v;
}
public static String queryInstallationVersion(ShellControl p, String exec) throws Exception {
try (CommandControl c =
p.command(CommandBuilder.of().addFile(exec).add("version")).start()) {
return c.readStdoutOrThrow();
} catch (ProcessOutputException ex) {
return "?";
}
}
public static Path getLocalBundledToolsDirectory() {
Path path = getCurrentInstallationBasePath();
@ -282,20 +273,6 @@ public class XPipeInstallation {
return path;
}
public static String getDefaultInstallationBasePath(ShellControl p) throws Exception {
String path;
if (p.getOsType().equals(OsType.WINDOWS)) {
var base = p.executeSimpleStringCommand(p.getShellDialect().getPrintVariableCommand("LOCALAPPDATA"));
path = FileNames.join(base, isStaging() ? "XPipe PTB" : "XPipe");
} else if (p.getOsType().equals(OsType.LINUX)) {
path = isStaging() ? "/opt/xpipe-ptb" : "/opt/xpipe";
} else {
path = isStaging() ? "/Applications/XPipe PTB.app" : "/Applications/XPipe.app";
}
return path;
}
public static Path getLangPath() {
if (!ModuleHelper.isImage()) {
return getCurrentInstallationBasePath().resolve("lang");

View file

@ -6,7 +6,6 @@ import io.xpipe.app.core.AppLayoutModel;
import io.xpipe.app.ext.ActionProvider;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.core.process.ShellDialects;
import io.xpipe.core.process.ShellStoreState;
import io.xpipe.core.store.ShellStore;
import javafx.beans.property.SimpleBooleanProperty;
@ -23,7 +22,8 @@ public class BrowseStoreAction implements ActionProvider {
public boolean isApplicable(DataStoreEntryRef<ShellStore> o) {
var state = o.get().getStorePersistentState();
if (state instanceof ShellStoreState shellStoreState) {
return shellStoreState.getShellDialect() != ShellDialects.NO_INTERACTION;
return shellStoreState.getShellDialect() == null ||
shellStoreState.getShellDialect().getDumbMode().supportsAnyPossibleInteraction();
} else {
return true;
}

View file

@ -24,7 +24,7 @@ public class LaunchAction implements ActionProvider {
@Override
public DataStoreCallSite<?> getDataStoreCallSite() {
return new DataStoreCallSite<DataStore>() {
return new DataStoreCallSite<>() {
@Override
public boolean canLinkTo() {
@ -43,9 +43,8 @@ public class LaunchAction implements ActionProvider {
@Override
public boolean isApplicable(DataStoreEntryRef<DataStore> o) {
return o.get().getValidity().isUsable()
&& (o.getStore() instanceof LaunchableStore
|| o.get().getProvider().launchAction(o.get()) != null);
return o.get().getValidity().isUsable() && (o.getStore() instanceof LaunchableStore || o.get().getProvider().launchAction(o.get()) !=
null);
}
@Override
@ -62,7 +61,7 @@ public class LaunchAction implements ActionProvider {
@Override
public DefaultDataStoreCallSite<?> getDefaultDataStoreCallSite() {
return new DefaultDataStoreCallSite<DataStore>() {
return new DefaultDataStoreCallSite<>() {
@Override
public ActionProvider.Action createAction(DataStoreEntryRef<DataStore> store) {
@ -76,9 +75,8 @@ public class LaunchAction implements ActionProvider {
@Override
public boolean isApplicable(DataStoreEntryRef<DataStore> o) {
return o.get().getValidity().isUsable()
&& (o.getStore() instanceof LaunchableStore
|| o.get().getProvider().launchAction(o.get()) != null);
return o.get().getValidity().isUsable() && (o.getStore() instanceof LaunchableStore || o.get().getProvider().launchAction(o.get()) !=
null);
}
};
}

View file

@ -5,12 +5,9 @@ import io.xpipe.app.ext.ActionProvider;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.ScanAlert;
import io.xpipe.core.process.ShellDialects;
import io.xpipe.core.process.ShellStoreState;
import io.xpipe.core.store.ShellStore;
import javafx.beans.value.ObservableValue;
import lombok.Value;
public class ScanAction implements ActionProvider {
@ -42,7 +39,8 @@ public class ScanAction implements ActionProvider {
var state = o.get().getStorePersistentState();
if (state instanceof ShellStoreState shellStoreState) {
return shellStoreState.getShellDialect() != ShellDialects.NO_INTERACTION;
return shellStoreState.getShellDialect() == null ||
shellStoreState.getShellDialect().getDumbMode().supportsAnyPossibleInteraction();
} else {
return true;
}

View file

@ -51,7 +51,7 @@ public class DesktopApplicationStoreProvider implements DataStoreProvider {
@Override
public CreationCategory getCreationCategory() {
return CreationCategory.DESKSTOP;
return CreationCategory.DESKTOP;
}
@Override

View file

@ -52,7 +52,7 @@ public class DesktopCommandStoreProvider implements DataStoreProvider {
@Override
public CreationCategory getCreationCategory() {
return CreationCategory.DESKSTOP;
return CreationCategory.DESKTOP;
}
@Override

View file

@ -84,7 +84,7 @@ public class DesktopEnvironmentStoreProvider implements DataStoreProvider {
@Override
public CreationCategory getCreationCategory() {
return CreationCategory.DESKSTOP;
return CreationCategory.DESKTOP;
}
@Override

View file

@ -1,14 +1,14 @@
## Yükseklik
## Yükseklik
Yükseltme i?lemi i?letim sistemine özgüdür.
Yükseltme işlemi işletim sistemine özgüdür.
### Linux ve macOS
Herhangi bir yükseltilmi? komut `sudo` ile yürütülür. ?ste?e ba?l? `sudo` parolas? gerekti?inde XPipe arac?l???yla sorgulan?r.
Parolan?za her ihtiyaç duyuldu?unda girmek isteyip istemedi?inizi veya mevcut oturum için önbelle?e almak isteyip istemedi?inizi kontrol etmek için ayarlarda yükseltme davran???n? ayarlama olana??na sahipsiniz.
Herhangi bir yükseltilmiş komut `sudo` ile yürütülür. İsteğe bağlı `sudo` parolası gerektiğinde XPipe aracılığıyla sorgulanır.
Parolanıza her ihtiyaç duyulduğunda girmek isteyip istemediğinizi veya mevcut oturum için önbelleğe almak isteyip istemediğinizi kontrol etmek için ayarlarda yükseltme davranışını ayarlama olanağına sahipsiniz.
### Windows
Windows'ta, üst süreç de yükseltilmemi?se bir alt süreci yükseltmek mümkün de?ildir.
Bu nedenle, XPipe yönetici olarak çal??t?r?lmazsa, yerel olarak herhangi bir yükseltme kullanamazs?n?z.
Uzak ba?lant?lar için, ba?l? kullan?c? hesab?na yönetici ayr?cal?klar? verilmelidir.
Windows'ta, üst süreç de yükseltilmemişse bir alt süreci yükseltmek mümkün değildir.
Bu nedenle, XPipe yönetici olarak çalıştırılmazsa, yerel olarak herhangi bir yükseltme kullanamazsınız.
Uzak bağlantılar için, bağlı kullanıcı hesabına yönetici ayrıcalıkları verilmelidir.

View file

@ -1,15 +1,15 @@
## Yürütme türleri
## Yürütme türleri
XPipe bir sisteme ba?land???nda iki farkl? yürütme türü vard?r.
XPipe bir sisteme bağlandığında iki farklı yürütme türü vardır.
### Arka planda
Bir sisteme ilk ba?lant? arka planda bir aptal terminal oturumunda yap?l?r.
Bir sisteme ilk bağlantı arka planda bir aptal terminal oturumunda yapılır.
Kullan?c? giri?i gerektiren engelleme komutlar?, XPipe arka planda ilk olarak dahili olarak ba?lat?ld???nda kabuk sürecini dondurabilir. Bunu önlemek için, bu engelleme komutlar?n? yaln?zca terminal modunda ça??rmal?s?n?z.
Kullanıcı girişi gerektiren engelleme komutları, XPipe arka planda ilk olarak dahili olarak başlatıldığında kabuk sürecini dondurabilir. Bunu önlemek için, bu engelleme komutlarını yalnızca terminal modunda çağırmalısınız.
Örne?in dosya taray?c?s?, i?lemlerini gerçekle?tirmek için tamamen dilsiz arka plan modunu kullan?r; bu nedenle, kod ortam?n?z?n dosya taray?c?s? oturumuna uygulanmas?n? istiyorsan?z, dilsiz modda çal??mas? gerekir.
Örneğin dosya tarayıcısı, işlemlerini gerçekleştirmek için tamamen dilsiz arka plan modunu kullanır; bu nedenle, kod ortamınızın dosya tarayıcısı oturumuna uygulanmasını istiyorsanız, dilsiz modda çalışması gerekir.
### Terminallerde
?lk dumb terminal ba?lant?s? ba?ar?l? olduktan sonra, XPipe gerçek terminalde ayr? bir ba?lant? açacakt?r. Ba?lant?y? bir terminalde açt???n?zda komut dosyas?n?n çal??t?r?lmas?n? istiyorsan?z, terminal modunu seçin.
İlk dumb terminal bağlantısı başarılı olduktan sonra, XPipe gerçek terminalde ayrı bir bağlantı açacaktır. Bağlantıyı bir terminalde açtığınızda komut dosyasının çalıştırılmasını istiyorsanız, terminal modunu seçin.

View file

@ -1,13 +1,13 @@
## Komut dosyas? uyumlulu?u
## Komut dosyası uyumluluğu
Kabuk türü bu beti?in nerede çal??t?r?labilece?ini kontrol eder.
Tam e?le?menin yan? s?ra, yani `zsh` beti?ini `zsh` içinde çal??t?rman?n yan? s?ra, XPipe daha geni? bir uyumluluk denetimi de içerecektir.
Kabuk türü bu betiğin nerede çalıştırılabileceğini kontrol eder.
Tam eşleşmenin yanı sıra, yani `zsh` betiğini `zsh` içinde çalıştırmanın yanı sıra, XPipe daha geniş bir uyumluluk denetimi de içerecektir.
### Posix Kabuklar?
### Posix Kabukları
`sh` beti?i olarak bildirilen herhangi bir betik, `bash` veya `zsh` gibi posix ile ilgili herhangi bir kabuk ortam?nda çal??abilir.
Temel bir beti?i birçok farkl? sistemde çal??t?rmay? dü?ünüyorsan?z, yaln?zca `sh` sözdizimi betiklerini kullanmak bunun için en iyi çözümdür.
`sh` betiği olarak bildirilen herhangi bir betik, `bash` veya `zsh` gibi posix ile ilgili herhangi bir kabuk ortamında çalışabilir.
Temel bir betiği birçok farklı sistemde çalıştırmayı düşünüyorsanız, yalnızca `sh` sözdizimi betiklerini kullanmak bunun için en iyi çözümdür.
### PowerShell
Normal `powershell` komut dosyalar? olarak bildirilen komut dosyalar? `pwsh` ortamlar?nda da çal??abilir.
Normal `powershell` komut dosyaları olarak bildirilen komut dosyaları `pwsh` ortamlarında da çalışabilir.

View file

@ -1,5 +1,5 @@
## Betik ba??ml?l?klar?
## Betik bağımlılıkları
Önce çal??t?r?lacak komut dosyalar? ve komut dosyas? gruplar?. Bir grubun tamam? ba??ml?l?k haline getirilirse, bu gruptaki tüm komut dosyalar? ba??ml?l?k olarak kabul edilecektir.
Önce çalıştırılacak komut dosyaları ve komut dosyası grupları. Bir grubun tamamı bağımlılık haline getirilirse, bu gruptaki tüm komut dosyaları bağımlılık olarak kabul edilecektir.
Komut dosyalar?n?n çözümlenmi? ba??ml?l?k grafi?i düzle?tirilir, filtrelenir ve benzersiz hale getirilir. Yani, yaln?zca uyumlu komut dosyalar? çal??t?r?lacak ve bir komut dosyas? birden çok kez çal??t?r?lacaksa, yaln?zca ilk seferde çal??t?r?lacakt?r.
Komut dosyalarının çözümlenmiş bağımlılık grafiği düzleştirilir, filtrelenir ve benzersiz hale getirilir. Yani, yalnızca uyumlu komut dosyaları çalıştırılacak ve bir komut dosyası birden çok kez çalıştırılacaksa, yalnızca ilk seferde çalıştırılacaktır.

View file

@ -1,5 +1,5 @@
## Komut dosyas? içeri?i
## Komut dosyası içeriği
Çal??t?r?lacak beti?in içeri?i. Bunu yerinde düzenlemeyi seçebilir veya harici bir metin düzenleyici ba?latmak için sa? üst kö?edeki harici düzenleme dü?mesini kullanabilirsiniz.
Çalıştırılacak betiğin içeriği. Bunu yerinde düzenlemeyi seçebilir veya harici bir metin düzenleyici başlatmak için sağ üst köşedeki harici düzenleme düğmesini kullanabilirsiniz.
Bunu destekleyen kabuklar için bir shebang sat?r? belirtmeniz gerekmez, uygun kabuk türüyle otomatik olarak bir tane eklenir.
Bunu destekleyen kabuklar için bir shebang satırı belirtmeniz gerekmez, uygun kabuk türüyle otomatik olarak bir tane eklenir.

View file

@ -1,11 +1,11 @@
## Yükseklik
## Yükseklik
?zinlerin yükseltilmesi süreci i?letim sistemine özgüdür.
İzinlerin yükseltilmesi süreci işletim sistemine özgüdür.
### Linux ve macOS
Herhangi bir yükseltilmi? komut `sudo` ile yürütülür. ?ste?e ba?l? `sudo` parolas? gerekti?inde XPipe arac?l???yla sorgulan?r. Parolan?za her ihtiyaç duyuldu?unda girmek isteyip istemedi?inizi veya mevcut oturum için önbelle?e almak isteyip istemedi?inizi kontrol etmek için ayarlarda yükseltme davran???n? ayarlama olana??na sahipsiniz.
Herhangi bir yükseltilmiş komut `sudo` ile yürütülür. İsteğe bağlı `sudo` parolası gerektiğinde XPipe aracılığıyla sorgulanır. Parolanıza her ihtiyaç duyulduğunda girmek isteyip istemediğinizi veya mevcut oturum için önbelleğe almak isteyip istemediğinizi kontrol etmek için ayarlarda yükseltme davranışını ayarlama olanağına sahipsiniz.
### Windows
Windows'ta, üst süreç de yükseltilmi? izinlerle çal??m?yorsa, bir alt sürecin izinlerini yükseltmek mümkün de?ildir. Bu nedenle, XPipe yönetici olarak çal??t?r?lmazsa, yerel olarak herhangi bir yükseltme kullanamazs?n?z. Uzak ba?lant?lar için, ba?l? kullan?c? hesab?na yönetici ayr?cal?klar? verilmelidir.
Windows'ta, üst süreç de yükseltilmiş izinlerle çalışmıyorsa, bir alt sürecin izinlerini yükseltmek mümkün değildir. Bu nedenle, XPipe yönetici olarak çalıştırılmazsa, yerel olarak herhangi bir yükseltme kullanamazsınız. Uzak bağlantılar için, bağlı kullanıcı hesabına yönetici ayrıcalıkları verilmelidir.

View file

@ -1,9 +1,9 @@
## Ba?lang?ç beti?i
## Başlangıç betiği
Kabu?un ba?lang?ç dosyalar? ve profilleri yürütüldükten sonra çal??t?r?lacak iste?e ba?l? komutlar.
Kabuğun başlangıç dosyaları ve profilleri yürütüldükten sonra çalıştırılacak isteğe bağlı komutlar.
Buna normal bir kabuk beti?i gibi davranabilirsiniz, yani kabu?un betiklerde destekledi?i tüm sözdizimini kullanabilirsiniz. Çal??t?rd???n?z tüm komutlar kabuk taraf?ndan kaynaklan?r ve ortam? de?i?tirir. Dolay?s?yla, örne?in bir de?i?ken ayarlarsan?z, bu kabuk oturumunda bu de?i?kene eri?iminiz olacakt?r.
Buna normal bir kabuk betiği gibi davranabilirsiniz, yani kabuğun betiklerde desteklediği tüm sözdizimini kullanabilirsiniz. Çalıştırdığınız tüm komutlar kabuk tarafından kaynaklanır ve ortamı değiştirir. Dolayısıyla, örneğin bir değişken ayarlarsanız, bu kabuk oturumunda bu değişkene erişiminiz olacaktır.
### Engelleme komutlar?
### Engelleme komutları
Kullan?c? giri?i gerektiren engelleme komutlar?n?n, XPipe arka planda ilk olarak dahili olarak ba?lat?ld???nda kabuk sürecini dondurabilece?ini unutmay?n. Bunu önlemek için, bu engelleme komutlar?n? yaln?zca `TERM` de?i?keni `dumb` olarak ayarlanmam??sa ça??r?n. XPipe arka planda kabuk oturumunu haz?rlarken `TERM=dumb` de?i?kenini otomatik olarak ayarlar ve daha sonra terminali gerçekten açarken `TERM=xterm-256color` de?i?kenini ayarlar.
Kullanıcı girişi gerektiren engelleme komutlarının, XPipe arka planda ilk olarak dahili olarak başlatıldığında kabuk sürecini dondurabileceğini unutmayın. Bunu önlemek için, bu engelleme komutlarını yalnızca `TERM` değişkeni `dumb` olarak ayarlanmamışsa çağırın. XPipe arka planda kabuk oturumunu hazırlarken `TERM=dumb` değişkenini otomatik olarak ayarlar ve daha sonra terminali gerçekten açarken `TERM=xterm-256color` değişkenini ayarlar.

View file

@ -1,3 +1,3 @@
## ?ifre
## Şifre
Sanal makinenizde basit bir parola yerine daha karma??k bir SSH kimlik do?rulamas? kullan?yorsan?z, sistemi XPipe'a normal bir SSH ba?lant?s? olarak ekleyebilirsiniz. D??ar?dan eri?ilemiyorsa, ana PVE sistemini bir SSH a? geçidi olarak ayarlayabilirsiniz.
Sanal makinenizde basit bir parola yerine daha karmaşık bir SSH kimlik doğrulaması kullanıyorsanız, sistemi XPipe'a normal bir SSH bağlantısı olarak ekleyebilirsiniz. Dışarıdan erişilemiyorsa, ana PVE sistemini bir SSH ağ geçidi olarak ayarlayabilirsiniz.

View file

@ -1,5 +1,5 @@
## Kullan?c? ad?
## Kullanıcı adı
Oturum aç?lacak kullan?c? ad?. XPipe, sa?lanan kimlik bilgilerini kullanarak SSH üzerinden ba?lanmay? deneyecektir.
Oturum açılacak kullanıcı adı. XPipe, sağlanan kimlik bilgilerini kullanarak SSH üzerinden bağlanmayı deneyecektir.
E?er hiçbir SSH sunucusu çal??m?yorsa, kurulu SSH sunucusunu ba?latmay? deneyecektir. Bu davran??? güvenlik ayarlar? menüsünden devre d??? b?rakabilece?inizi unutmay?n.
Eğer hiçbir SSH sunucusu çalışmıyorsa, kurulu SSH sunucusunu başlatmayı deneyecektir. Bu davranışı güvenlik ayarları menüsünden devre dışı bırakabileceğinizi unutmayın.

View file

@ -1,5 +1,5 @@
## RDP Tünel Ana Bilgisayar?
## RDP Tünel Ana Bilgisayarı
Uzak bir RDP ana bilgisayar?na bir SSH tüneli üzerinden ba?lanmay? seçebilirsiniz. Bu size daha geli?mi? SSH kimlik do?rulama özelliklerini kutudan ç?kar ç?kmaz RDP ile kullanma olana?? verir.
Bir SSH tüneli aracılığıyla uzak bir RDP ana bilgisayarına bağlanabilirsiniz. Bu size kutudan çıktığı haliyle RDP ile daha gelişmiş SSH kimlik doğrulama özelliklerini kullanma olanağı sağlar.
Bu seçenek kullan?ld???nda, RDP dosyas?ndaki ana bilgisayar adresi SSH ba?lant?s?n?n seçilen ana bilgisayar ad? ile de?i?tirilecektir. ?lk ba?lant?da bir SSH tüneli kurulacak ve RDP istemcisi tünelli ba?lant?ya localhost üzerinden ba?lanacakt?r.
İlk bağlantıda bir SSH tüneli kurulacak ve RDP istemcisi tünelli bağlantıya localhost üzerinden bağlanacaktır. RDP kimlik doğrulaması için SSH bağlantı kullanıcısının kimlik bilgilerini kullanacaktır.

View file

@ -1,5 +1,5 @@
## Geçici konteynerler
## Geçici konteynerler
Bu, durduruldu?unda otomatik olarak kald?r?lacak olan belirtilen imaj? kullanarak geçici bir konteyner çal??t?racakt?r. Konteyner imaj?nda çal??acak herhangi bir komut belirtilmemi? olsa bile konteyner çal??maya devam edecektir.
Bu, durdurulduğunda otomatik olarak kaldırılacak olan belirtilen imajı kullanarak geçici bir konteyner çalıştıracaktır. Konteyner imajında çalışacak herhangi bir komut belirtilmemiş olsa bile konteyner çalışmaya devam edecektir.
Bu, belirli bir konteyner imaj?n? kullanarak belirli bir ortam? h?zl? bir ?ekilde kurmak istedi?inizde yararl? olabilir. Daha sonra XPipe'da konteynere normal ?ekilde girebilir, i?lemlerinizi gerçekle?tirebilir ve art?k ihtiyaç duyulmad???nda konteyneri durdurabilirsiniz. Daha sonra otomatik olarak kald?r?l?r.
Bu, belirli bir konteyner imajını kullanarak belirli bir ortamı hızlı bir şekilde kurmak istediğinizde yararlı olabilir. Daha sonra XPipe'da konteynere normal şekilde girebilir, işlemlerinizi gerçekleştirebilir ve artık ihtiyaç duyulmadığında konteyneri durdurabilirsiniz. Daha sonra otomatik olarak kaldırılır.

View file

@ -1,29 +1,29 @@
## Özel kabuk ba?lant?lar?
## Özel kabuk bağlantıları
Seçilen ana bilgisayar sisteminde verilen komutu çal??t?rarak özel komutu kullanarak bir kabuk açar. Bu kabuk yerel ya da uzak olabilir.
Seçilen ana bilgisayar sisteminde verilen komutu çalıştırarak özel komutu kullanarak bir kabuk açar. Bu kabuk yerel ya da uzak olabilir.
Bu i?levin kabu?un `cmd`, `bash`, vb. gibi standart bir türde olmas?n? bekledi?ini unutmay?n. Bir terminalde ba?ka türde kabuklar ve komutlar açmak istiyorsan?z, bunun yerine özel terminal komut türünü kullanabilirsiniz. Standart kabuklar? kullanmak, bu ba?lant?y? dosya taray?c?s?nda da açman?za olanak tan?r.
Bu işlevin kabuğun `cmd`, `bash`, vb. gibi standart bir türde olmasını beklediğini unutmayın. Bir terminalde başka türde kabuklar ve komutlar açmak istiyorsanız, bunun yerine özel terminal komut türünü kullanabilirsiniz. Standart kabukları kullanmak, bu bağlantıyı dosya tarayıcısında da açmanıza olanak tanır.
### ?nteraktif istemler
### İnteraktif istemler
Beklenmedik bir gereklilik olmas? durumunda kabuk süreci zaman a??m?na u?rayabilir veya ask?da kalabilir
giri? istemi, parola istemi gibi. Bu nedenle, her zaman etkile?imli giri? istemleri olmad???ndan emin olmal?s?n?z.
Beklenmedik bir gereklilik olması durumunda kabuk süreci zaman aşımına uğrayabilir veya askıda kalabilir
giriş istemi, parola istemi gibi. Bu nedenle, her zaman etkileşimli giriş istemleri olmadığından emin olmalısınız.
Örne?in, `ssh user@host` gibi bir komut, parola gerekmedi?i sürece burada iyi çal??acakt?r.
Örneğin, `ssh user@host` gibi bir komut, parola gerekmediği sürece burada iyi çalışacaktır.
### Özel yerel kabuklar
### Özel yerel kabuklar
Birçok durumda, baz? komut dosyalar?n?n ve komutlar?n düzgün çal??mas?n? sa?lamak için genellikle varsay?lan olarak devre d??? b?rak?lan belirli seçeneklerle bir kabuk ba?latmak yararl?d?r. Örne?in:
Birçok durumda, bazı komut dosyalarının ve komutların düzgün çalışmasını sağlamak için genellikle varsayılan olarak devre dışı bırakılan belirli seçeneklerle bir kabuk başlatmak yararlıdır. Örneğin:
- [Gecikmeli Geni?leme
- [Gecikmeli Genişleme
cmd](https://ss64.com/nt/delayedexpansion.html)
- [Powershell yürütme
- [Powershell yürütme
policies](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.3)
- [Bash POSIX
Mod](https://www.gnu.org/software/bash/manual/html_node/Bash-POSIX-Mode.html)
- Ve seçti?iniz bir kabuk için di?er olas? f?rlatma seçenekleri
- Ve seçtiğiniz bir kabuk için diğer olası fırlatma seçenekleri
Bu, örne?in a?a??daki komutlarla özel kabuk komutlar? olu?turularak gerçekle?tirilebilir:
Bu, örneğin aşağıdaki komutlarla özel kabuk komutları oluşturularak gerçekleştirilebilir:
- `cmd /v`
- `powershell -ExecutionMode Bypass`

View file

@ -1,13 +1,13 @@
### SSH yap?land?rmalar?
### SSH yapılandırmaları
XPipe tüm ana bilgisayarlar? yükler ve seçilen dosyada yap?land?rd???n?z tüm ayarlar? uygular. Dolay?s?yla, bir yap?land?rma seçene?ini genel veya ana bilgisayara özel olarak belirtti?inizde, XPipe taraf?ndan kurulan ba?lant?ya otomatik olarak uygulanacakt?r.
XPipe tüm ana bilgisayarları yükler ve seçilen dosyada yapılandırdığınız tüm ayarları uygular. Dolayısıyla, bir yapılandırma seçeneğini genel veya ana bilgisayara özel olarak belirttiğinizde, XPipe tarafından kurulan bağlantıya otomatik olarak uygulanacaktır.
SSH yap?land?rmalar?n?n nas?l kullan?laca?? hakk?nda daha fazla bilgi edinmek istiyorsan?z, `man ssh_config` kullanabilir veya bu [k?lavuzu] (https://www.ssh.com/academy/ssh/config) okuyabilirsiniz.
SSH yapılandırmalarının nasıl kullanılacağı hakkında daha fazla bilgi edinmek istiyorsanız, `man ssh_config` kullanabilir veya bu [kılavuzu] (https://www.ssh.com/academy/ssh/config) okuyabilirsiniz.
### Kimlikler
Burada bir `IdentityFile` seçene?i de belirtebilece?inizi unutmay?n. Burada herhangi bir kimlik belirtilirse, daha sonra a?a??da belirtilen herhangi bir kimlik göz ard? edilecektir.
Burada bir `IdentityFile` seçeneği de belirtebileceğinizi unutmayın. Burada herhangi bir kimlik belirtilirse, daha sonra aşağıda belirtilen herhangi bir kimlik göz ardı edilecektir.
### X11 yönlendirme
### X11 yönlendirme
Burada X11 iletimi için herhangi bir seçenek belirtilirse, XPipe otomatik olarak WSL arac?l???yla Windows üzerinde X11 iletimi kurmaya çal??acakt?r.
Burada X11 iletimi için herhangi bir seçenek belirtilirse, XPipe otomatik olarak WSL aracılığıyla Windows üzerinde X11 iletimi kurmaya çalışacaktır.

View file

@ -1,7 +1,7 @@
## Kabuk tipi alg?lama
## Kabuk tipi algılama
XPipe, ba?lant?n?n kabuk türünü alg?layarak ve ard?ndan etkin kabukla etkile?ime girerek çal???r. Ancak bu yakla??m yaln?zca kabuk türü bilindi?inde ve belirli say?da eylem ve komutu destekledi?inde çal???r. `bash`, `cmd`, `powershell` ve daha fazlas? gibi tüm yayg?n kabuklar desteklenir.
XPipe, bağlantının kabuk türünü algılayarak ve ardından etkin kabukla etkileşime girerek çalışır. Ancak bu yaklaşım yalnızca kabuk türü bilindiğinde ve belirli sayıda eylem ve komutu desteklediğinde çalışır. `bash`, `cmd`, `powershell` ve daha fazlası gibi tüm yaygın kabuklar desteklenir.
## Bilinmeyen kabuk türleri
## Bilinmeyen kabuk türleri
Bilinen bir komut kabu?u çal??t?rmayan bir sisteme ba?lan?yorsan?z, örne?in bir yönlendirici, ba?lant? veya baz? IOT cihazlar?, XPipe kabuk türünü tespit edemeyecek ve bir süre sonra hata verecektir. Bu seçene?i etkinle?tirdi?inizde, XPipe kabuk türünü belirlemeye çal??maz ve kabu?u oldu?u gibi ba?lat?r. Bu, ba?lant?y? hatas?z açman?za izin verir, ancak dosya taray?c?s?, komut dosyas? olu?turma, alt ba?lant?lar ve daha fazlas? gibi birçok özellik bu ba?lant? için desteklenmeyecektir.
Bilinen bir komut kabuğu çalıştırmayan bir sisteme bağlanıyorsanız, örneğin bir yönlendirici, bağlantı veya bazı IOT cihazları, XPipe kabuk türünü tespit edemeyecek ve bir süre sonra hata verecektir. Bu seçeneği etkinleştirdiğinizde, XPipe kabuk türünü belirlemeye çalışmaz ve kabuğu olduğu gibi başlatır. Bu, bağlantıyı hatasız açmanıza izin verir, ancak dosya tarayıcısı, komut dosyası oluşturma, alt bağlantılar ve daha fazlası gibi birçok özellik bu bağlantı için desteklenmeyecektir.

View file

@ -1,5 +1,5 @@
## Tünel ba?lama
## Tünel bağlama
Sa?lad???n?z ba?lama bilgileri do?rudan `ssh` istemcisine a?a??daki ?ekilde aktar?l?r: `-D [address:]port`.
Sağladığınız bağlama bilgileri doğrudan `ssh` istemcisine aşağıdaki şekilde aktarılır: `-D [address:]port`.
Varsay?lan olarak, adres geri döngü arayüzüne ba?lanacakt?r. Ayr?ca herhangi bir adres joker karakterini de kullanabilirsiniz, örne?in IPv4 üzerinden eri?ilebilen tüm a? arayüzlerine ba?lanmak için adresi `0.0.0.0` olarak ayarlayabilirsiniz. Adresi tamamen atlad???n?zda, tüm a? arayüzlerinde ba?lant?lara izin veren `*` joker karakteri kullan?lacakt?r. Baz? a? arayüzleri gösterimlerinin tüm i?letim sistemlerinde desteklenmeyebilece?ini unutmay?n. Örne?in Windows sunucular? `*` joker karakterini desteklemez.
Varsayılan olarak, adres geri döngü arayüzüne bağlanacaktır. Ayrıca herhangi bir adres joker karakterini de kullanabilirsiniz, örneğin IPv4 üzerinden erişilebilen tüm ağ arayüzlerine bağlanmak için adresi `0.0.0.0` olarak ayarlayabilirsiniz. Adresi tamamen atladığınızda, tüm ağ arayüzlerinde bağlantılara izin veren `*` joker karakteri kullanılacaktır. Bazı ağ arayüzleri gösterimlerinin tüm işletim sistemlerinde desteklenmeyebileceğini unutmayın. Örneğin Windows sunucuları `*` joker karakterini desteklemez.

View file

@ -1,5 +1,5 @@
## Tünel Kökeni
## Tünel Kökeni
XPipe bir komutun nerede çal??t?r?laca?? konusunda tamamen esnektir. Bu nedenle, yerel makinenize ek olarak herhangi bir sistem üzerinde bir tünel kurabilirsiniz.
XPipe bir komutun nerede çalıştırılacağı konusunda tamamen esnektir. Bu nedenle, yerel makinenize ek olarak herhangi bir sistem üzerinde bir tünel kurabilirsiniz.
Tünel aç?c? komutu burada belirtti?iniz sistemde çal??t?r?lacakt?r, bu nedenle bu sistemde bir `ssh` istemcisinin kurulu olmas? gerekir. Kaynak yerel makine de?ilse, XPipe tüneli yönetmek için arka planda bu uzak sistemle bir ba?lant?y? aç?k tutacakt?r.
Tünel açıcı komutu burada belirttiğiniz sistemde çalıştırılacaktır, bu nedenle bu sistemde bir `ssh` istemcisinin kurulu olması gerekir. Kaynak yerel makine değilse, XPipe tüneli yönetmek için arka planda bu uzak sistemle bir bağlantıyıık tutacaktır.

View file

@ -1,9 +1,9 @@
## X11 Yönlendirme
## X11 Yönlendirme
Bu seçenek etkinle?tirildi?inde, SSH ba?lant?s? X11 yönlendirme kurulumu ile ba?lat?lacakt?r. Linux'ta bu genellikle kutudan ç?kar ç?kmaz çal???r ve herhangi bir kurulum gerektirmez. MacOS'ta, yerel makinenizde [XQuartz](https://www.xquartz.org/) gibi bir X11 sunucusunun çal???yor olmas? gerekir.
Bu seçenek etkinleştirildiğinde, SSH bağlantısı X11 yönlendirme kurulumu ile başlatılacaktır. Linux'ta bu genellikle kutudan çıkar çıkmaz çalışır ve herhangi bir kurulum gerektirmez. MacOS'ta, yerel makinenizde [XQuartz](https://www.xquartz.org/) gibi bir X11 sunucusunun çalışıyor olması gerekir.
### Windows üzerinde X11
### Windows üzerinde X11
XPipe, SSH ba?lant?n?z için WSL2 X11 yeteneklerini kullanman?za izin verir. Bunun için ihtiyac?n?z olan tek ?ey yerel sisteminizde kurulu bir [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) da??t?m?d?r. XPipe mümkünse otomatik olarak uyumlu bir da??t?m seçecektir, ancak ayarlar menüsünden ba?ka bir da??t?m da kullanabilirsiniz.
XPipe, SSH bağlantınız için WSL2 X11 yeteneklerini kullanmanıza izin verir. Bunun için ihtiyacınız olan tek şey yerel sisteminizde kurulu bir [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) dağıtımıdır. XPipe mümkünse otomatik olarak uyumlu bir dağıtım seçecektir, ancak ayarlar menüsünden başka bir dağıtım da kullanabilirsiniz.
Bu, Windows'a ayr? bir X11 sunucusu kurman?za gerek olmad??? anlam?na gelir. Ancak, yine de bir tane kullan?yorsan?z, XPipe bunu alg?layacak ve o anda çal??an X11 sunucusunu kullanacakt?r.
Bu, Windows'a ayrı bir X11 sunucusu kurmanıza gerek olmadığı anlamına gelir. Ancak, yine de bir tane kullanıyorsanız, XPipe bunu algılayacak ve o anda çalışan X11 sunucusunu kullanacaktır.

View file

@ -1,9 +1,9 @@
## Kabuk ba?lant? a? geçitleri
## Kabuk bağlantı geçitleri
Etkinle?tirilirse, XPipe önce a? geçidine bir kabuk ba?lant?s? açar ve buradan belirtilen ana bilgisayara bir SSH ba?lant?s? açar. `ssh` komutunun kullan?labilir olmas? ve seçti?iniz a? geçidinde `PATH` içinde bulunmas? gerekir.
Etkinleştirilirse, XPipe önce ağ geçidine bir kabuk bağlantısı açar ve buradan belirtilen ana bilgisayara bir SSH bağlantısı açar. `ssh` komutunun kullanılabilir olması ve seçtiğiniz ağ geçidinde `PATH` içinde bulunması gerekir.
### Jump sunucular?
### Jump sunucuları
Bu mekanizma atlama sunucular?na benzer, ancak e?de?er de?ildir. SSH protokolünden tamamen ba??ms?zd?r, bu nedenle herhangi bir kabuk ba?lant?s?n? a? geçidi olarak kullanabilirsiniz.
Bu mekanizma atlama sunucularına benzer, ancak eşdeğer değildir. SSH protokolünden tamamen bağımsızdır, bu nedenle herhangi bir kabuk bağlantısını geçidi olarak kullanabilirsiniz.
Uygun SSH atlama sunucular? ar?yorsan?z, belki de ajan yönlendirme ile birlikte, `ProxyJump` yap?land?rma seçene?i ile özel SSH ba?lant? i?levselli?ini kullan?n.
Uygun SSH atlama sunucuları arıyorsanız, belki de ajan yönlendirme ile birlikte, `ProxyJump` yapılandırma seçeneği ile özel SSH bağlantı işlevselliğini kullanın.

View file

@ -1,5 +1,5 @@
## Sistem etkile?imi
## Sistem etkileşimi
XPipe, her ?eyin do?ru çal??t???n? do?rulamak ve sistem bilgilerini görüntülemek için ne tür bir kabukta oturum açt???n? tespit etmeye çal???r. Bu, bash gibi normal komut kabuklar? için i?e yarar, ancak birçok gömülü sistem için standart olmayan ve özel oturum açma kabuklar? için ba?ar?s?z olur. Bu sistemlere yap?lan ba?lant?lar?n ba?ar?l? olmas? için bu davran??? devre d??? b?rakman?z gerekir.
XPipe, her şeyin doğru çalıştığını doğrulamak ve sistem bilgilerini görüntülemek için ne tür bir kabukta oturum açtığını tespit etmeye çalışır. Bu, bash gibi normal komut kabukları için işe yarar, ancak birçok gömülü sistem için standart olmayan ve özel oturum açma kabukları için başarısız olur. Bu sistemlere yapılan bağlantıların başarılı olması için bu davranışı devre dışı bırakmanız gerekir.
Bu etkile?im devre d??? b?rak?ld???nda, herhangi bir sistem bilgisini tan?mlamaya çal??mayacakt?r. Bu, sistemin dosya taray?c?s?nda veya di?er ba?lant?lar için bir proxy/geçit sistemi olarak kullan?lmas?n? önleyecektir. XPipe daha sonra esasen sadece ba?lant? için bir ba?lat?c? olarak hareket edecektir.
Bu etkileşim devre dışı bırakıldığında, herhangi bir sistem bilgisini tanımlamaya çalışmayacaktır. Bu, sistemin dosya tarayıcısında veya diğer bağlantılar için bir proxy/geçit sistemi olarak kullanılmasını önleyecektir. XPipe daha sonra esasen sadece bağlantı için bir başlatıcı olarak hareket edecektir.

View file

@ -1,55 +1,55 @@
### Yok
`publickey` kimlik do?rulamas?n? devre d??? b?rak?r.
`publickey` kimlik doğrulamasını devre dışı bırakır.
### SSH-Agent
Kimliklerinizin SSH-Agent'ta depolanmas? durumunda, ssh yürütülebilir dosyas?, agent ba?lat?ld???nda bunlar? kullanabilir.
XPipe, henüz çal??m?yorsa arac? sürecini otomatik olarak ba?latacakt?r.
Kimliklerinizin SSH-Agent'ta depolanması durumunda, ssh yürütülebilir dosyası, agent başlatıldığında bunları kullanabilir.
XPipe, henüz çalışmıyorsa aracı sürecini otomatik olarak başlatacaktır.
### Pageant (Windows)
Windows üzerinde pageant kullan?yorsan?z, XPipe önce pageant'?n çal???p çal??mad???n? kontrol edecektir.
Pageant'?n do?as? gere?i, pageant'a sahip olmak sizin sorumlulu?unuzdad?r
her seferinde eklemek istedi?iniz tüm anahtarlar? manuel olarak belirtmeniz gerekti?inden çal???yor.
E?er çal???yorsa, XPipe uygun adland?r?lm?? boruyu
`-oIdentityAgent=...` ssh için, herhangi bir özel yap?land?rma dosyas? eklemeniz gerekmez.
Windows üzerinde pageant kullanıyorsanız, XPipe önce pageant'ın çalışıp çalışmadığını kontrol edecektir.
Pageant'ın doğası gereği, pageant'a sahip olmak sizin sorumluluğunuzdadır
her seferinde eklemek istediğiniz tüm anahtarları manuel olarak belirtmeniz gerektiğinden çalışıyor.
Eğer çalışıyorsa, XPipe uygun adlandırılmış boruyu
`-oIdentityAgent=...` ssh için, herhangi bir özel yapılandırma dosyası eklemeniz gerekmez.
OpenSSH istemcisinde sorunlara neden olabilecek baz? uygulama hatalar? oldu?unu unutmay?n
kullan?c? ad?n?z bo?luk içeriyorsa veya çok uzunsa, en son sürümü kullanmaya çal???n.
OpenSSH istemcisinde sorunlara neden olabilecek bazı uygulama hataları olduğunu unutmayın
kullanıcı adınız boşluk içeriyorsa veya çok uzunsa, en son sürümü kullanmaya çalışın.
### Pageant (Linux ve macOS)
Kimliklerinizin pageant arac?s?nda saklanmas? durumunda, arac? ba?lat?l?rsa ssh yürütülebilir dosyas? bunlar? kullanabilir.
XPipe, henüz çal??m?yorsa arac? sürecini otomatik olarak ba?latacakt?r.
Kimliklerinizin pageant aracısında saklanması durumunda, aracı başlatılırsa ssh yürütülebilir dosyası bunları kullanabilir.
XPipe, henüz çalışmıyorsa aracı sürecini otomatik olarak başlatacaktır.
### Kimlik dosyas?
### Kimlik dosyası
?ste?e ba?l? bir parola ile bir kimlik dosyas? da belirtebilirsiniz.
Bu seçenek `ssh -i <dosya>` seçene?ine e?de?erdir.
İsteğe bağlı bir parola ile bir kimlik dosyası da belirtebilirsiniz.
Bu seçenek `ssh -i <dosya>` seçeneğine eşdeğerdir.
Bunun genel de?il *özel* anahtar olmas? gerekti?ini unutmay?n.
E?er bunu kar??t?r?rsan?z, ssh size sadece ?ifreli hata mesajlar? verecektir.
Bunun genel değil *özel* anahtar olması gerektiğini unutmayın.
Eğer bunu karıştırırsanız, ssh size sadece şifreli hata mesajları verecektir.
### GPG Agent
Kimlikleriniz örne?in bir ak?ll? kartta saklan?yorsa, bunlar? SSH istemcisine `gpg-agent` arac?l???yla sa?lamay? seçebilirsiniz.
Bu seçenek, henüz etkinle?tirilmemi?se arac?n?n SSH deste?ini otomatik olarak etkinle?tirecek ve GPG arac? arka plan program?n? do?ru ayarlarla yeniden ba?latacakt?r.
Kimlikleriniz örneğin bir akıllı kartta saklanıyorsa, bunları SSH istemcisine `gpg-agent` aracılığıyla sağlamayı seçebilirsiniz.
Bu seçenek, henüz etkinleştirilmemişse aracının SSH desteğini otomatik olarak etkinleştirecek ve GPG aracı arka plan programını doğru ayarlarla yeniden başlatacaktır.
### Yubikey PIV
Kimlikleriniz Yubikey'in PIV ak?ll? kart i?levi ile saklan?yorsa, ?unlar? geri alabilirsiniz
yubico PIV Arac? ile birlikte gelen Yubico'nun YKCS11 kütüphanesi ile.
Kimlikleriniz Yubikey'in PIV akıllı kart işlevi ile saklanıyorsa, şunları geri alabilirsiniz
yubico PIV Aracı ile birlikte gelen Yubico'nun YKCS11 kütüphanesi ile.
Bu özelli?i kullanabilmek için güncel bir OpenSSH yap?s?na ihtiyac?n?z oldu?unu unutmay?n.
Bu özelliği kullanabilmek için güncel bir OpenSSH yapısına ihtiyacınız olduğunu unutmayın.
### Özel ajan
### Özel ajan
Burada soket konumunu veya adland?r?lm?? boru konumunu sa?layarak özel bir arac? da kullanabilirsiniz.
Bu, `IdentityAgent` seçene?i arac?l???yla aktar?lacakt?r.
Burada soket konumunu veya adlandırılmış boru konumunu sağlayarak özel bir aracı da kullanabilirsiniz.
Bu, `IdentityAgent` seçeneği aracılığıyla aktarılacaktır.
### Özel PKCS#11 kütüphanesi
### Özel PKCS#11 kütüphanesi
Bu, OpenSSH istemcisine kimlik do?rulamas?n? gerçekle?tirecek olan belirtilen payla??lan kütüphane dosyas?n? yüklemesi talimat?n? verecektir.
Bu, OpenSSH istemcisine kimlik doğrulamasını gerçekleştirecek olan belirtilen paylaşılan kütüphane dosyasını yüklemesi talimatını verecektir.
Bu özelli?i kullanabilmek için güncel bir OpenSSH yap?s?na ihtiyac?n?z oldu?unu unutmay?n.
Bu özelliği kullanabilmek için güncel bir OpenSSH yapısına ihtiyacınız olduğunu unutmayın.

View file

@ -1,5 +1,5 @@
## Ba?lama
## Bağlama
Sa?lad???n?z ba?lama bilgileri do?rudan `ssh` istemcisine ?u ?ekilde iletilir: `-L [origin_address:]origin_port:remote_address:remote_port`.
Sağladığınız bağlama bilgileri doğrudan `ssh` istemcisine şu şekilde iletilir: `-L [origin_address:]origin_port:remote_address:remote_port`.
Varsay?lan olarak, aksi belirtilmedi?i takdirde kaynak geri döngü arayüzüne ba?lanacakt?r. Ayr?ca, IPv4 üzerinden eri?ilebilen tüm a? arayüzlerine ba?lanmak için adresi `0.0.0.0` olarak ayarlamak gibi herhangi bir adres joker karakterinden de yararlanabilirsiniz. Adresi tamamen atlad???n?zda, tüm a? arayüzlerinde ba?lant?lara izin veren `*` joker karakteri kullan?lacakt?r. Baz? a? arayüzleri gösterimlerinin tüm i?letim sistemlerinde desteklenmeyebilece?ini unutmay?n. Örne?in Windows sunucular? `*` joker karakterini desteklemez.
Varsayılan olarak, aksi belirtilmediği takdirde kaynak geri döngü arayüzüne bağlanacaktır. Ayrıca, IPv4 üzerinden erişilebilen tüm ağ arayüzlerine bağlanmak için adresi `0.0.0.0` olarak ayarlamak gibi herhangi bir adres joker karakterinden de yararlanabilirsiniz. Adresi tamamen atladığınızda, tüm ağ arayüzlerinde bağlantılara izin veren `*` joker karakteri kullanılacaktır. Bazı ağ arayüzleri gösterimlerinin tüm işletim sistemlerinde desteklenmeyebileceğini unutmayın. Örneğin Windows sunucuları `*` joker karakterini desteklemez.

View file

@ -1,7 +1,7 @@
## Tünel Kökeni
## Tünel Kökeni
XPipe bir komutun nerede çal??t?r?laca?? konusunda tamamen esnektir.
Bu nedenle, yerel makinenize ek olarak herhangi bir uzak sistemde ba?layan bir tünel kurabilirsiniz.
XPipe bir komutun nerede çalıştırılacağı konusunda tamamen esnektir.
Bu nedenle, yerel makinenize ek olarak herhangi bir uzak sistemde başlayan bir tünel kurabilirsiniz.
Tünel aç?c? komutu burada belirtti?iniz sistemde çal??t?r?lacakt?r, bu nedenle bu sistemde bir `ssh` istemcisinin kurulu olmas? gerekir.
Kaynak yerel makine de?ilse, XPipe tüneli yönetmek için arka planda bu uzak sistemle bir ba?lant?y? aç?k tutacakt?r.
Tünel açıcı komutu burada belirttiğiniz sistemde çalıştırılacaktır, bu nedenle bu sistemde bir `ssh` istemcisinin kurulu olması gerekir.
Kaynak yerel makine değilse, XPipe tüneli yönetmek için arka planda bu uzak sistemle bir bağlantıyıık tutacaktır.

View file

@ -1,27 +1,27 @@
## SSH yap?land?rmalar?
## SSH yapılandırmaları
Burada ba?lant?ya aktar?lmas? gereken SSH seçeneklerini belirtebilirsiniz.
`HostName` gibi baz? seçenekler esasen ba?ar?l? bir ba?lant? kurmak için gereklidir,
di?er birçok seçenek tamamen iste?e ba?l?d?r.
Burada bağlantıya aktarılması gereken SSH seçeneklerini belirtebilirsiniz.
`HostName` gibi bazı seçenekler esasen başarılı bir bağlantı kurmak için gereklidir,
diğer birçok seçenek tamamen isteğe bağlıdır.
Tüm olas? seçeneklere genel bir bak?? elde etmek için [`man ssh_config`](https://linux.die.net/man/5/ssh_config) adresini kullanabilir veya bu [k?lavuz](https://www.ssh.com/academy/ssh/config) adresini okuyabilirsiniz.
Desteklenen seçeneklerin tam miktar? tamamen kurulu SSH istemcinize ba?l?d?r.
Tüm olası seçeneklere genel bir bakış elde etmek için [`man ssh_config`](https://linux.die.net/man/5/ssh_config) adresini kullanabilir veya bu [kılavuz](https://www.ssh.com/academy/ssh/config) adresini okuyabilirsiniz.
Desteklenen seçeneklerin tam miktarı tamamen kurulu SSH istemcinize bağlıdır.
### Biçimlendirme
### Biçimlendirme
Buradaki içerik, SSH yap?land?rma dosyas?ndaki bir ana bilgisayar bölümüne e?de?erdir.
`Host` anahtar?n? aç?kça tan?mlamak zorunda olmad???n?z? unutmay?n, çünkü bu otomatik olarak yap?lacakt?r.
Buradaki içerik, SSH yapılandırma dosyasındaki bir ana bilgisayar bölümüne eşdeğerdir.
`Host` anahtarınııkça tanımlamak zorunda olmadığınızı unutmayın, çünkü bu otomatik olarak yapılacaktır.
Birden fazla ana bilgisayar bölümü tan?mlamak istiyorsan?z, örne?in ba?ka bir yap?land?rma ana bilgisayar?na ba?l? bir proxy atlama ana bilgisayar? gibi ba??ml? ba?lant?lar varsa, burada da birden fazla ana bilgisayar giri?i tan?mlayabilirsiniz. XPipe daha sonra ilk ana bilgisayar giri?ini ba?latacakt?r.
Birden fazla ana bilgisayar bölümü tanımlamak istiyorsanız, örneğin başka bir yapılandırma ana bilgisayarına bağlı bir proxy atlama ana bilgisayarı gibi bağımlı bağlantılar varsa, burada da birden fazla ana bilgisayar girişi tanımlayabilirsiniz. XPipe daha sonra ilk ana bilgisayar girişini başlatacaktır.
Bo?luk veya girinti ile herhangi bir biçimlendirme yapman?z gerekmez, çal??mas? için buna gerek yoktur.
Boşluk veya girinti ile herhangi bir biçimlendirme yapmanız gerekmez, çalışması için buna gerek yoktur.
Bo?luk içeriyorsa herhangi bir de?eri al?nt?lamaya dikkat etmeniz gerekti?ini unutmay?n, aksi takdirde yanl?? aktar?l?rlar.
Boşluk içeriyorsa herhangi bir değeri alıntılamaya dikkat etmeniz gerektiğini unutmayın, aksi takdirde yanlış aktarılırlar.
### Kimlik dosyalar?
### Kimlik dosyaları
Burada bir `IdentityFile` seçene?i de belirtebilece?inizi unutmay?n.
Bu seçenek burada belirtilirse, daha sonra a?a??da belirtilen herhangi bir anahtar tabanl? kimlik do?rulama seçene?i göz ard? edilecektir.
Burada bir `IdentityFile` seçeneği de belirtebileceğinizi unutmayın.
Bu seçenek burada belirtilirse, daha sonra aşağıda belirtilen herhangi bir anahtar tabanlı kimlik doğrulama seçeneği göz ardı edilecektir.
XPipe git kasas?nda yönetilen bir kimlik dosyas?na ba?vurmay? tercih ederseniz, bunu da yapabilirsiniz.
XPipe payla??lan kimlik dosyalar?n? tespit edecek ve git kasas?n? klonlad???n?z her sistemde dosya yolunu otomatik olarak uyarlayacakt?r.
XPipe git kasasında yönetilen bir kimlik dosyasına başvurmayı tercih ederseniz, bunu da yapabilirsiniz.
XPipe paylaşılan kimlik dosyalarını tespit edecek ve git kasasını klonladığınız her sistemde dosya yolunu otomatik olarak uyarlayacaktır.

View file

@ -1,5 +1,5 @@
## Ba?lama
## Bağlama
Sa?lad???n?z ba?lama bilgileri do?rudan `ssh` istemcisine ?u ?ekilde aktar?l?r: `-R [remote_source_address:]remote_source_port:origin_destination_address:origin_destination_port`.
Sağladığınız bağlama bilgileri doğrudan `ssh` istemcisine şu şekilde aktarılır: `-R [remote_source_address:]remote_source_port:origin_destination_address:origin_destination_port`.
Varsay?lan olarak, uzak kaynak adresi geri döngü arayüzüne ba?lanacakt?r. Ayr?ca herhangi bir adres joker karakterini de kullanabilirsiniz, örne?in IPv4 üzerinden eri?ilebilen tüm a? arayüzlerine ba?lanmak için adresi `0.0.0.0` olarak ayarlayabilirsiniz. Adresi tamamen atlad???n?zda, tüm a? arayüzlerinde ba?lant?lara izin veren `*` joker karakteri kullan?lacakt?r. Baz? a? arayüzleri gösterimlerinin tüm i?letim sistemlerinde desteklenmeyebilece?ini unutmay?n. Örne?in Windows sunucular? `*` joker karakterini desteklemez.
Varsayılan olarak, uzak kaynak adresi geri döngü arayüzüne bağlanacaktır. Ayrıca herhangi bir adres joker karakterini de kullanabilirsiniz, örneğin IPv4 üzerinden erişilebilen tüm ağ arayüzlerine bağlanmak için adresi `0.0.0.0` olarak ayarlayabilirsiniz. Adresi tamamen atladığınızda, tüm ağ arayüzlerinde bağlantılara izin veren `*` joker karakteri kullanılacaktır. Bazı ağ arayüzleri gösterimlerinin tüm işletim sistemlerinde desteklenmeyebileceğini unutmayın. Örneğin Windows sunucuları `*` joker karakterini desteklemez.

View file

@ -1,7 +1,7 @@
## Tünel Kökeni
## Tünel Kökeni
XPipe bir komutun nerede çal??t?r?laca?? konusunda tamamen esnektir.
Bu nedenle, yerel makinenize ek olarak herhangi bir sistem üzerinde bir tünel kurabilirsiniz.
XPipe bir komutun nerede çalıştırılacağı konusunda tamamen esnektir.
Bu nedenle, yerel makinenize ek olarak herhangi bir sistem üzerinde bir tünel kurabilirsiniz.
Tünel aç?c? komutu burada belirtti?iniz sistemde çal??t?r?lacakt?r, bu nedenle bu sistemde bir `ssh` istemcisinin kurulu olmas? gerekir.
Kaynak yerel makine de?ilse, XPipe tüneli yönetmek için arka planda bu uzak sistemle bir ba?lant?y? aç?k tutacakt?r.
Tünel açıcı komutu burada belirttiğiniz sistemde çalıştırılacaktır, bu nedenle bu sistemde bir `ssh` istemcisinin kurulu olması gerekir.
Kaynak yerel makine değilse, XPipe tüneli yönetmek için arka planda bu uzak sistemle bir bağlantıyıık tutacaktır.

View file

@ -1,4 +1,4 @@
### ?ifre
### Şifre
VMware arayüzü üzerinden bu i?levi kullanmak için bir parolaya sahip olmak gerekir.
Misafir kullan?c? hesab?n?z?n ?u anda bir parolas? yoksa, lütfen bir parola belirleyin.
VMware arayüzü üzerinden bu işlevi kullanmak için bir parolaya sahip olmak gerekir.
Misafir kullanıcı hesabınızın şu anda bir parolası yoksa, lütfen bir parola belirleyin.

View file

@ -1,5 +1,5 @@
## VNC Tünel Ana Bilgisayar?
## VNC Tünel Ana Bilgisayarı
Uzak bir VNC ana bilgisayar?na bir SSH tüneli üzerinden ba?lanabilirsiniz. Bu size daha geli?mi? SSH kimlik do?rulama özelliklerini kutudan ç?kar ç?kmaz VNC ile kullanma olana?? verir. VNC temelde güvensiz ve ?ifrelenmemi? bir protokol oldu?u için bu önemlidir. Tünelleme gerekli güvenlik katman?n? sa?lar.
Uzak bir VNC ana bilgisayarına bir SSH tüneli üzerinden bağlanabilirsiniz. Bu size daha gelişmiş SSH kimlik doğrulama özelliklerini kutudan çıkar çıkmaz VNC ile kullanma olanağı verir. VNC temelde güvensiz ve şifrelenmemiş bir protokol olduğu için bu önemlidir. Tünelleme gerekli güvenlik katmanını sağlar.
Ayr?ca, yaln?zca SSH üzerinden eri?ilebilir olmas? gerekti?inden, uzak sisteminizdeki VNC ba?lant? noktas?n? aç??a ç?karma konusunda endi?elenmenize gerek yoktur.
Ayrıca, yalnızca SSH üzerinden erişilebilir olması gerektiğinden, uzak sisteminizdeki VNC bağlantı noktasınıığa çıkarma konusunda endişelenmenize gerek yoktur.

View file

@ -1,6 +1,6 @@
Herhangi bir sorunuz varsa, herhangi bir sorunla kar??la??rsan?z veya ba?ka bir ?ey olursa, bizimle ileti?ime geçebilirsiniz:
Herhangi bir sorunuz varsa, herhangi bir sorunla karşılaşırsanız veya başka bir şey olursa, bizimle iletişime geçebilirsiniz:
- Bize [hello@xpipe.io](mailto://hello@xpipe.io) adresinden e-posta gönderin
- XPipe Discord Sunucusuna Kat?l?n](https://discord.gg/8y89vS8cRb)
- XPipe Slack Sunucusuna Kat?l?n](https://join.slack.com/t/XPipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
- GitHub deposu]'nda bir sorun aç?n (https://github.com/xpipe-io/xpipe)
- Bize [hello@xpipe.io](mailto://hello@xpipe.io) adresinden e-posta gönderin
- XPipe Discord Sunucusuna Katılın](https://discord.gg/8y89vS8cRb)
- XPipe Slack Sunucusuna Katılın](https://join.slack.com/t/XPipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg)
- GitHub deposu]'nda bir sorun açın (https://github.com/xpipe-io/xpipe)

View file

@ -1,3 +1,3 @@
## Lisans?n?z ba?ar?yla etkinle?tirildi!
## Lisansınız başarıyla etkinleştirildi!
Yeni özelliklerinize eri?mek için lütfen XPipe uygulamas?n? yeniden ba?lat?n.
Yeni özelliklerinize erişmek için lütfen XPipe uygulamasını yeniden başlatın.

View file

@ -1,11 +1,11 @@
# XPipe Pro Önizleme
# XPipe Pro Önizleme
Kullanmaya çal??t???n?z özellik, ilgilenen herkesin yeni yay?nlanan profesyonellere özel özellikleri yay?nland?ktan sonra iki hafta boyunca denemesine olanak tan?yan profesyonel önizlemede mevcuttur. Ayr?ca, herhangi bir ?ey sat?n almak zorunda kalmadan deneme yapman?za, geri bildirim payla?man?za ve tüm yeni özelliklere bir göz atman?za olanak tan?r.
Kullanmaya çalıştığınız özellik, ilgilenen herkesin yeni yayınlanan profesyonellere özel özellikleri yayınlandıktan sonra iki hafta boyunca denemesine olanak tanıyan profesyonel önizlemede mevcuttur. Ayrıca, herhangi bir şey satın almak zorunda kalmadan deneme yapmanıza, geri bildirim paylaşmanıza ve tüm yeni özelliklere bir göz atmanıza olanak tanır.
Bir yan etki olarak, yeni özellikler herkes için önizleme olmadan mümkün olabilecek daha iyi bir test kapsam?na da sahip olur.
Bir yan etki olarak, yeni özellikler herkes için önizleme olmadan mümkün olabilecek daha iyi bir test kapsamına da sahip olur.
## Do?rulama
## Doğrulama
Önizleme plan? etkinle?tirildikten sonra, uygulama her ?eyin yolunda oldu?unu do?rulamak için her ba?lang?çta lisans sunucusuyla ileti?im kuracakt?r. Buradan, ?u anda hangi özelliklerin yeni oldu?u ve hala önizlemeye dahil oldu?u bilgisini de al?r.
Önizleme planı etkinleştirildikten sonra, uygulama her şeyin yolunda olduğunu doğrulamak için her başlangıçta lisans sunucusuyla iletişim kuracaktır. Buradan, şu anda hangi özelliklerin yeni olduğu ve hala önizlemeye dahil olduğu bilgisini de alır.
Ayr?ca önizlemeyi istedi?iniz zaman tekrar devre d??? b?rakabilirsiniz.
Ayrıca önizlemeyi istediğiniz zaman tekrar devre dışı bırakabilirsiniz.